请给出 在unity中 小球和小球碰撞后反弹的代码
时间: 2024-05-01 08:17:25 浏览: 12
以下是在Unity中实现两个小球碰撞后反弹的代码:
```
using UnityEngine;
public class Ball : MonoBehaviour
{
public float speed = 10f;
private Rigidbody rb;
void Start()
{
rb = GetComponent<Rigidbody>();
rb.velocity = new Vector3(speed, 0, 0); // 初始速度为向右运动
}
void FixedUpdate()
{
// 碰撞检测
void OnCollisionEnter(Collision collision)
{
if (collision.gameObject.tag == "Ball")
{
Vector3 dir = collision.contacts[0].point - transform.position;
dir = -dir.normalized; // 计算反弹方向
rb.velocity = dir * speed; // 反弹后速度与初始速度大小一样
}
}
}
}
```
上述代码中,我们为小球添加刚体组件,并在Start方法中设置小球的初始速度。在每一次碰撞中,我们计算出反弹方向并将小球速度设置为反弹方向与速度大小相同的向量。