【发布时间】:2013-05-31 22:44:23
【问题描述】:
我是编程新手,我正在为我的项目制作 2D 横向滚动节拍器。我让一个 AI 为我的敌人工作,但我的敌人对象被建模为扁平的,因此只显示一侧。当我开始游戏时,当我希望敌人保持原样但仍朝玩家移动时,敌人会立即旋转以面向玩家。
http://i.imgur.com/TJYtfro.png这就是我希望敌人保持的样子,只是显示这张脸,因为它滑向玩家而不旋转或倾斜。
http://i.imgur.com/n0gI2Rf.png 这就是我开始游戏时发生的情况,这就是为什么我不希望对象旋转或倾斜。如果您想了解我所做的更多信息或者我不清楚,请告诉我。这是我第一次在网上问。
这是我得到的enemyAI的代码。我知道就我想要实现的目标而言,代码都是错误的,但我的编码知识非常有限,仍在学习。
//------------Variables----------------//
public Transform target;
public int moveSpeed;
public int rotationSpeed;
public int maxdistance;
private Transform myTransform;
//------------------------------------//
void Awake()
{
myTransform = transform;
}
void Start ()
{
maxdistance = 2;
}
void Update ()
{
if(Vector3.Distance(target.position, myTransform.position) > maxdistance)
{
//Move towards target
transform.LookAt (target.position);
myTransform.position += myTransform.forward * moveSpeed * Time.deltaTime;
}
}
【问题讨论】:
-
如果您注释掉 transform.LookAt() 或将其设置为 transform.LookAt(new Vector(0,0,1)) 以使其沿 Z 轴看会发生什么?看看这个:docs.unity3d.com/Documentation/ScriptReference/…
-
当我注释掉它时,没有一个敌人移动。当我将其设置为 transform.LookAt(new Vector3(0,0,1)) 时,所有人都开始向上看,完全忽略了玩家。