对于高速物体的碰撞检测,碰撞体组件检测不到
解决方法之一:
修改Rigidbody的Collision Detection属性为第二或者第三个可以实现
耗性能
解决方法之二:
using System.Collections; using System.Collections.Generic; using UnityEngine; public class BulletTransform : MonoBehaviour { public float speed; bool isRun; void Update () { if(Input.GetKeyDown(KeyCode.Space)) { isRun = true; } Vector3 oldPos = transform.position; if(isRun) { transform.Translate(transform.forward*speed*Time.deltaTime); } Vector3 newPos = transform.position; Vector3 dir = newPos - oldPos; RaycastHit hit; Debug.DrawRay(oldPos,dir,Color.blue); if(Physics.Raycast(oldPos,transform.forward,out hit,dir.magnitude)) { if(hit.collider.CompareTag("Wall")) { print("子弹碰到了墙"); } } } }
解决方法之三:
一直发射线(还没有测试)暂时