我一直在Unity3D中开发一个项目,并发现了一个让敌人跟随玩家的javascript。脚本如下:
var target : Transform; //the enemy's target
var moveSpeed = 3; //move speed
var rotationSpeed = 3; //speed of turning
var myTransform : Transform; //current transform data of this enemy
function Awake()
{
myTransform = transform; //cache transform data for easy access/preformance
}
function Start()
{
target = GameObject.FindWithTag("Player").transform; //target the player
}
function Update () {
//rotate to look at the player
myTransform.rotation = Quaternion.Slerp(myTransform.rotation,
Quaternion.LookRotation(target.position - myTransform.position), rotationSpeed*Time.deltaTime);
//move towards the player
myTransform.position += myTransform.forward * moveSpeed * Time.deltaTime;
}
当敌人"旋转着看玩家"时,他们会从水平位置旋转到垂直位置。我该如何修改脚本以防止这种情况发生?
在Quaternion中有第二个参数。LookRotation
你可以使用:
Quaternion.LookRotation(目标。position - myTransform。位置, Vector3.up )或Quaternion.LookRotation(目标。position - myTransform。位置, transform.up )