亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在一定距離內讓敵人跟隨你

在一定距離內讓敵人跟隨你

C#
慕桂英546537 2021-11-21 10:53:08
我讓敵人沿著設定的路徑(路徑點)移動,但是我希望敵人在您距離玩家一定距離內時跟隨玩家,但是當超出該距離時,敵人會回到其路徑點并繼續前進路徑,直到玩家再次在一定距離內。所以它一直在這樣做。下面是我得到的讓敵人沿路點移動的代碼。我正在使用 Unity 2d 和 C#[SerializeField]Transform[] waypoints; //EnemyWayPoint;[SerializeField]float moveSpeed = 3f;int waypointIndex = 0;private void Start(){    transform.position = waypoints[waypointIndex].transform.position;}private void Update(){    Move();}private void Move(){    transform.position = Vector3.MoveTowards(transform.position, waypoints[waypointIndex].transform.position, moveSpeed * Time.deltaTime);    if (transform.position == waypoints[waypointIndex].transform.position) {         waypointIndex += 1;    }    if (waypointIndex == waypoints.Length)        waypointIndex = 0;    }}
查看完整描述

2 回答

?
哈士奇WWW

TA貢獻1799條經驗 獲得超6個贊

使用Vector3.Distance(otherPos,transformPos) 檢查敵人和玩家之間的距離,如果小于distVal,則根據您的選擇檢查距離,然后敵人應該跟隨或執行動作


var distVal=5.0f;

var dis=Vector3.Distance(enemyTransform.position,playerTransform.position);

if(dis<=disVal)

{

  //what enemy should do.

}

接下來是您自己的選擇,用于在此處讀取距離文檔時設置的向量的歸一化


查看完整回答
反對 回復 2021-11-21
?
慕的地6264312

TA貢獻1817條經驗 獲得超6個贊

Arslan 的回答很好 - 只需對代碼稍作更改,您就知道它也可以通過這種方式完成...


var distVal=5.0f;        

if (Vector3.Distance(enemyTransform.position, playerTransform.position) < disVal)

            {

                Debug.Log("Enemy following you");

            }

它大致相同,但很高興知道它存在的其他方式。


查看完整回答
反對 回復 2021-11-21
  • 2 回答
  • 0 關注
  • 210 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號