0
標題說明了一切。Unity3d Transform.LookAt也改變位置
我提供了一個NPC以下腳本,這應該讓他看起來和樹皮在玩家。當玩家進入NPC時,NPC會開始向玩家走去,而不是面對他。
有什麼想法?
using UnityEngine;
public class Barking : MonoBehaviour {
public AudioSource barkingAudio;
private GameObject player;
private bool barking;
void Start() {
player = GameObject.FindGameObjectWithTag("Player");
barking = false;
}
void Update() {
if (barking)
lookAtPlayer();
}
private void lookAtPlayer()
{
transform.LookAt(player.transform.position, Vector3.up);
}
private void OnTriggerEnter(Collider other)
{
if (other.gameObject == player)
{
barking = true;
barkingAudio.mute = false;
barkingAudio.Play();
}
}
private void OnTriggerExit(Collider other)
{
if (other.gameObject == player) {
barking = false;
barkingAudio.mute = true;
barkingAudio.Stop();
}
}
}
當你註釋掉transform.LookAt行時會發生什麼?我可以想出爲什麼這會移動你的對象的唯一原因是,如果你的對象的起源不在你認爲它的位置,那麼它不會直接移動。我的實際猜測是另一個腳本是負責的 – Tom
當我註釋掉transform.LookAt行時,NPC不再移動,也不會向玩家旋轉。這導致我相信這種方法被竊聽了。 此外,我沒有在任何其他源文件中引用NPC。 –
- 更新:刪除NPC上的剛體組件解決了我的問題。不知道如何或爲什麼會發生這種情況。要在Google上搜索更多內容! –