007 == 高速物体的检测

对于高速物体的碰撞检测,碰撞体组件检测不到

解决方法之一:

    修改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("子弹碰到了墙");
            }
        }
	}
}

解决方法之三:

一直发射线(还没有测试)暂时

猜你喜欢

转载自blog.csdn.net/qq_38104858/article/details/80432652
007