Unity叉积基础知识点

33 篇文章 0 订阅

Unity相关代码


public class FindEnemy2 : MonoBehaviour
{
    public Transform A;

    public Transform B;
    // Start is called before the first frame update
    void Start()
    {
        
    }

    private float dotResult;

    private Vector3 crossResult;

    // Update is called once per frame
    void Update()
    {
        dotResult = Vector3.Dot(A.forward, B.position - A.position);
        crossResult = Vector3.Cross(A.forward, B.position - A.position);

        //判断前后
        if(dotResult>=0)
        {
            //右侧
            if(crossResult.y>=0)
            {
                Debug.Log("右前");
            }
            //左侧
            else
            {
                Debug.Log("左前");
            }
        }
        else
        {
            //右侧
            if(crossResult.y>=0)
            {
                Debug.Log("后右");
            }
            //左侧
            else
            {
                Debug.Log("后左");
            }
        }

        if(Vector3.Distance(A.position,B.position)<=5)
        {
            if(crossResult.y>=0&&Vector3.Angle(A.forward,B.position-A.position)<=30)
            {
                Debug.Log("右侧30度内");
                Debug.Log("发现入侵者");
            }
            else if(crossResult.y<0&&Vector3.Angle(A.forward,B.position-A.position)<=20)
            {
                Debug.Log("左侧20度以内");
                Debug.Log("发现入侵者");
            }
        }

    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值