对于高速物体的碰撞检测,碰撞体组件检测不到
解决方法之一:
修改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("子弹碰到了墙");
}
}
}
}
解决方法之三:
一直发射线(还没有测试)暂时