一:演示视频
二:代码实现
using UnityEngine; public class Ball : MonoBehaviour { private Rigidbody rigid; private Vector3 lastDir; public float speed = 30; private void Awake() { rigid = GetComponent<Rigidbody>(); rigid.velocity = new Vector3(1, 0, 1) * speed; } private void LateUpdate() { lastDir = rigid.velocity; } private void OnCollisionEnter(Collision other) { if (other.gameObject.tag == "Wall") { Vector3 reflexAngle = Vector3.Reflect(lastDir, other.contacts[0].normal); rigid.velocity = reflexAngle.normalized * lastDir.magnitude; } } }
也可以添加
创建物理材质
修改值就可以发生反弹碰撞了
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
评论(0)