无法在Unity3D中改变旋转



我一直在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 )

最新更新