unity学习日记之范围检测

世界坐标原点有一个立方体,键盘WASD键可以控制其前后移动和旋转,请实现

1.按J键在立方体面朝向前方1米处进行立方体范围检测

2.按K键在立方体前面5米范围内进行胶囊范围检测

3.按L键以立方体脚下为原点,半径10米内进行球形范围检测

public class TestFanwei : MonoBehaviour
{
    public float moveSpeed; //移动速度
    public float rotateSpeed;   //旋转速度
    void Start()
    {
        transform.position = Vector3.zero;
    }

    void Update()
    {
        //控制前后移动
        transform.Translate(0, 0, Input.GetAxis("Vertical") * moveSpeed * Time.deltaTime);
        //控制左右旋转
        transform.Rotate(0, Input.GetAxis("Horizontal") * rotateSpeed * Time.deltaTime, 0);

        //按J键在立方体面朝向前方1米处进行立方体范围检测
        if (Input.GetKeyDown(KeyCode.J))
        {
            Collider[] box = Physics.OverlapBox(transform.position + new Vector3(0, 0, 1), Vector3.one * 0.5f, Quaternion.identity);
            for (int i = 0; i < box.Length; i++)
            {
                print("盒:" + box[i].gameObject.name);
            }
        }

        //按K键在立方体面朝向前方1米处进行立方体范围检测
        if (Input.GetKeyDown(KeyCode.K))
        {
            Collider[] capsule = Physics.OverlapCapsule(transform.position + new Vector3(0, 0, 2), transform.position + new Vector3(0, 0, 5), 1);
            for (int i = 0; i < capsule.Length; i++)
            {
                print("胶囊:" + capsule[i].gameObject.name);
            }
        }

        //按L键以立方体脚下为原点,半径10米内进行球形范围检测
        if (Input.GetKeyDown(KeyCode.L))
        {
            Collider[] sphere = Physics.OverlapSphere(transform.position - new Vector3(0, 0.5f, 0), 10);
            for (int i = 0; i < sphere.Length; i++)
            {
                print("球:" + sphere[i].gameObject.name);
            }
        }
    }
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值