所以我在搅拌机中创建了一个turrent模型,导入到统一中,一切都很好看,我有一个小旋转脚本,为我的中心场景放置togeather,旋转效果很好
现在进入代码试图旋转枪管看向敌人看起来不那么好
这是一个简短的游戏视频来展示这个问题
当前的桶正面临一个完全不同的地方然后敌人我更愿意在代码中解决问题,而不是从头开始重建模型所以我正在做什么(这不起作用)
private void Update(){
FlameForgedTime.UpdateTime ();
if (isInGame) {
RegenerateHitpoint ();
//Look for enemy
if (FlameForgedTime.Time - lastAttack > StatsHelper.Instance.GetStatValue (Stat.Speed)) {
Collider[] col = Physics.OverlapSphere(transform.position,StatsHelper.Instance.GetStatValue (Stat.Range),LayerMask.GetMask("Enemy"));
if (col.Length != 0) {
//find closest enemy
int closestIndex = 0;
float dist = Vector3.SqrMagnitude (col [closestIndex].transform.position - transform.position);
for (int i = 1; i < col.Length; i++) {
float newDistance = Vector3.SqrMagnitude (col [i].transform.position - transform.position);
if (newDistance < dist) {
dist = newDistance;
closestIndex = i;
}
}
//shoot enemy
//Rotate turrent to look at enemy GameObject.FindGameObjectWithTag("Player").transform.LookAt(col[closestIndex].transform);
ShootEnemy(col[closestIndex].transform);
lastAttack = Time.time;
}
}
}
}
所以在我的turrent(父游戏对象)上,我有标签“Player”,因为turrent被加载到预加载器场景中,并且公共GameObject字段无法访问
由于某种原因,Y是电流在
上旋转的轴无论如何,我得到最接近塔的敌人,然后做一个LookAt试图让炮塔看敌人然后射击敌人,但是你看不到正常情况,你可以通过视频看到
答案 0 :(得分:2)
&#34;前进&#34;模型上的轴(即枪管指向的方向)与Unity所说的前轴不对齐。
&#34;正向&#34;在Unity中沿着正Z方向,所以你的模型并没有与其变换的本地前锋对齐(这是使用LookAt()
时指向的东西)。看起来你的模型沿着正X轴向前对齐。
有三种方法可以解决这个问题:
LookAt()
(不推荐)