点乘和叉乘

点乘公式

a*b=|a|*|b|cosθ

a·b>0 方向基本相同,夹角在0°到90°之间

a·b=0 正交,相互垂直

a·b<0 方向基本相反,夹角在90°到180°之间

        public Transform target;
        public void Update()
        {
            float forward = Vector3.Dot(target.position-transform.position, transform.right);
            Debug.Log(forward);
            if (forward>0)
            {
                Debug.Log("右方");
            }
            else if (forward == 0)
            {
                Debug.Log("正前方");
            }
            else
            {
                Debug.Log("左方");
            }
        }



叉乘公式

a*b=-1*a*b

a*b=向量a与向量b形成的平行四边形的面积

        public Transform target;
        public void Update()
        {
            float forward = Vector3.Cross(target.position-transform.position, transform.right).y;
            Debug.Log(forward);
            if (forward>0)
            {
                Debug.Log("前方");
            }
            else if (forward == 0)
            {
                Debug.Log("同一直线上");
            }
            else
            {
                Debug.Log("后方");
            }
        }



static Vector3 Cross(Vector3 lhs, Vector3 rhs);

Ihs是目标点的向量,为目标点的坐标-自身点的坐标,求得目标点的向量。

rhs是自身点的向量,向量是一个方向,该方向为自身的右方。

可以通过判断自身的y值的大小来目标点在物体的前后。



可参考   点乘和叉乘




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值