欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

Unity3D如何實現攻擊范圍檢測

小編這次要給大家分享的是Unity3D如何實現攻擊范圍檢測,文章內容豐富,感興趣的小伙伴可以來了解一下,希望大家閱讀完這篇文章之后能夠有所收獲。

公司專注于為企業(yè)提供成都做網站、網站制作、微信公眾號開發(fā)、商城建設,重慶小程序開發(fā),軟件按需設計等一站式互聯(lián)網企業(yè)服務。憑借多年豐富的經驗,我們會仔細了解各客戶的需求而做出多方面的分析、設計、整合,為客戶設計出具風格及創(chuàng)意性的商業(yè)解決方案,成都創(chuàng)新互聯(lián)公司更提供一系列網站制作和網站推廣的服務。

一、扇形攻擊范圍檢測

using UnityEngine;
using System.Collections;


public class AttackCHeck : MonoBehaviour
{
 //要攻擊的目標
 public Transform Target;
 //扇形距離 攻擊距離 扇形的半徑 
 private float SkillDistance = 5;
 //扇形的角度 也就是攻擊的角度
 private float SkillJiaodu = 60;

 private void Update()
 {
  //與敵人的距離
  float distance = Vector3.Distance(transform.position, Target.position);
  //玩家正前方的向量
  Vector3 norVec = transform.rotation * Vector3.forward;
  //玩家與敵人的方向向量
  Vector3 temVec = Target.position - transform.position;
  //求兩個向量的夾角
  float jiajiao = Mathf.Acos(Vector3.Dot(norVec.normalized, temVec.normalized)) * Mathf.Rad2Deg;
  if (distance < SkillDistance)
  {
   if (jiajiao <= SkillJiaodu * 0.5f)
   {
    Debug.Log("在扇形范圍內");
   }
  }
 }
}

二、長方形范圍攻擊檢測

using UnityEngine;
using System.Collections;


public class AttackCHeck : MonoBehaviour
{
 //要攻擊的目標
 public Transform Target;

 private void Update()
 {
  //計算玩家與敵人的距離
  float distance = Vector3.Distance(transform.position, Target.position);
  //玩家與敵人的方向向量
  Vector3 temVec = Target.position - transform.position;
  //與玩家正前方做點積
  float forwardDistance = Vector3.Dot(temVec, transform.forward.normalized);
  if (forwardDistance > 0 && forwardDistance <= 10)
  {
   float rightDistance = Vector3.Dot(temVec, transform.right.normalized);

   if (Mathf.Abs(rightDistance) <= 3)
   {
    Debug.Log("進入攻擊范圍");
   }
  }

 }
}

三、半圓形攻擊范圍檢測

using UnityEngine;
using System.Collections;


public class AttackCHeck : MonoBehaviour
{
 //要攻擊的目標
 public Transform Target;
 private void Update()
 {
  //計算玩家與敵人的距離
  float distance = Vector3.Distance(transform.position, Target.position);
  //玩家與敵人的方向向量
  Vector3 temVec = Target.position - transform.position;
  //與玩家正前方做點積
  float forwardDistance = Vector3.Dot(temVec, transform.forward.normalized);
  if (forwardDistance > 0 && forwardDistance <= 10)
  {
   if (distance <= 5)
   {
    Debug.Log("進入攻擊范圍");
   }
  }
 }
}

暫時就寫三種吧!目前就遇到三種,以后遇到再更新.接下來介紹一下算法的核心知識點吧

其實這些小算法基本上用的全是向量的計算,向量的計算有兩種

1.向量的點乘

–>A . B = |A| * |B| * cos θ
–>點乘應用

1).如果 讓 A 等于單位向量 |A| ==1 c點積 等于 B 在 A 上的投影
2).如果 讓 A B等于單位向量 arccos(a.b) == 夾角

2.向量的叉乘

–>A* B = C C就是A和B的法向量
–>叉乘應用

1).c 是有方向 。 通過 左手 定則 可以知道 C 的方向
2).所以叉乘一般是用來計算方向的
3).A 和 B 都是單位向量 arcsin(|A*B|) 等于 夾角

看完這篇關于Unity3D如何實現攻擊范圍檢測的文章,如果覺得文章內容寫得不錯的話,可以把它分享出去給更多人看到。

分享標題:Unity3D如何實現攻擊范圍檢測
文章來源:http://aaarwkj.com/article24/iidice.html

成都網站建設公司_創(chuàng)新互聯(lián),為您提供網站改版、虛擬主機搜索引擎優(yōu)化、企業(yè)建站建站公司、響應式網站

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

成都網站建設
少妇视频资源一区二区三区| 精品欧美不卡在线播放| av网址在线免费观看| 高清欧美精品一区二区三区| 未满十八禁在线观看免费| 女人天堂网av免费看| 日韩中文在线中文网三级| 国产精品对白久久久久粗| 国产欧美日本综合一区| 日本熟女午夜福利视频| 18禁成年大片免费网站| 欧美日韩久久免费观看| 亚洲人妻av一区二区三区| 伊人久久精品一区二区| 日木av中文字幕女女同性| 极品少妇高潮在线观看免费| 丰满少妇诱惑在线观看| 2020年最新国产三级网站| 日本免费中文字幕在线| 999久久久久亚洲精品| 在线午夜免费视频观看| 久久精品熟女亚洲av韩国| 麻豆成人久久精品二区三| 亚洲最大av在线精品国产| 91欧美一区二区在线视频 | 国产精品麻豆久久av| 亚洲一品道在线观看| 99热视频在线观看免费| 亚洲视频在线视频看视频在线| 日韩午夜电影一区二区三区| 欧美国产免费高清视频| 亚洲天堂av福利在线观看| 日本一区二区三区免费不卡视频 | 国语对白精品视频在线| 日韩在线视频网站不卡| 欧美黄色影院在线观看| 男女搞j视频网站免费观看 | 亚洲色图综合在线观看| 久久se精品一区精品二区国产| 99人妻精品一区二区| 亚洲福利视频在线观看免费|