[英]Unity C#/Blender Model not rotating correctly
因此,我在攪拌器中創建了一個turrent模型,並導入了一個統一體,一切看起來都不錯。我為我的中心場景添加了一些旋轉腳本,並且旋轉效果很好
現在進入嘗試旋轉槍管以向敵人看去的代碼看起來並不好
以下是一段簡短的游戲視頻,以演示該問題
動盪的槍管正面臨着一個與敵人完全不同的地方,我更願意在代碼中解決敵人,而不是從頭開始重建模型,所以這就是我目前正在做的事情(那是行不通的)
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嘗試使炮塔看向敵人,然后向敵人射擊,但是如視頻所示,它無法正常工作
模型上的“前向”軸(即槍管指向的方向)與Unity所說的前向軸不一致。
Unity中的“前進”沿Z軸的正方向,因此您的模型與變換的局部前向不LookAt()
這是使用LookAt()
時指向事物的方向)。 看起來您的模型是沿着正X軸與向前對齊。
有三種方法可以解決此問題:
LookAt()
之后,按腳本方式旋轉90度(不推薦)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.