
👨💻个人主页:@元宇宙-秩沅
👨💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅!
👨💻 本文由 秩沅 原创
👨💻 收录于专栏:unity每日一记
⭐🅰️推荐文章⭐
⭐【Unityc#专题篇】之c#系统化大礼包】
⭐【unity数据持久化】数据管理类_PlayerPrfs
⭐【unity本站最全系列】unity常用API大全一篇文章足以
 
⭐叉乘和点乘的检测应用⭐
文章目录
- ⭐🅰️推荐文章⭐
 - ⭐叉乘和点乘的检测应用⭐
 - 🎶 叉乘和点乘的结合使用辨别对象的位置
 - 🎶 叉乘用来左右双向检测物体
 - ⭐🅰️系统路线学习点击跳转⭐
 
🎶 叉乘和点乘的结合使用辨别对象的位置

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
//-------------------------------------
//—————————————————————————————————————
//___________项目:       ______________
//___________功能:叉乘和点乘的应用
//___________创建者:秩沅_______________
//_____________________________________
//-------------------------------------
public class DotAndCross : MonoBehaviour
{
    public Transform A;
    public Transform B;
    //叉乘和点乘的结合可用来准确判断方位
    float dotVaule;
    Vector3  crossVaule;
    private void Update()
    {
        dotVaule = Vector3.Dot(A.forward, (B.position - A.position).normalized);
        crossVaule = Vector3.Cross(A.forward, (B.position - A.position).normalized);
        //叉乘和点乘的结合可用来准确判断方位
        if(dotVaule >0)
        {
            if(crossVaule.y > 0 ) //在左前方
            {
            }
            else                   //在右前方
            {
            }
        }
        else
        {
            if (crossVaule.y > 0) //在左后方
            {
            }
            else                   //在右后方
            {
            }
        }
    }
}
 
🎶 叉乘用来左右双向检测物体

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
//-------------------------------------
//—————————————————————————————————————
//___________项目:       ______________
//___________功能:叉乘和点乘的应用
//___________创建者:秩沅_______________
//_____________________________________
//-------------------------------------
public class DotAndCross : MonoBehaviour
{
    public Transform A;
    public Transform B;
    //叉乘和点乘的结合可用来准确判断方位
    float dotVaule;
    Vector3  crossVaule;
    private void Update()
    {
        if(Vector3.Distance(A.position ,B.position )<=10)  //检测范围在10米之内
        {
            //左边小于40度右边小于60度的情况
            if(crossVaule.y  >= 0 && Vector3.Angle(A.forward ,(B.position -A.position ).normalized )<= 40 ||
                crossVaule.y < 0 && Vector3.Angle(A.forward, (B.position - A.position).normalized) <= 60)
            {
            }
        }
    }
}
 
⭐🅰️系统路线学习点击跳转⭐
⭐【Unityc#专题篇】之c#进阶篇】
⭐【Unityc#专题篇】之c#核心篇】
⭐【Unityc#专题篇】之c#基础篇】
⭐【Unity-c#专题篇】之c#入门篇】
⭐【Unityc#专题篇】—进阶章题单实践练习
⭐【Unityc#专题篇】—基础章题单实践练习
⭐【Unityc#专题篇】—核心章题单实践练习
你们的点赞👍 收藏⭐ 留言📝 关注✅是我持续创作,输出优质内容的最大动力!、




















