[請益] Unity中prefab角度跟Instantiate不同

作者: JKT48 (JKT48)   2015-08-08 14:14:17
大家好
新手在玩Unity做一個飛機的遊戲, 飛機可以射出飛彈打擊目標等等
現在做到一個地方一直卡關, 所以上來請問前輩
是這樣的我現在要做一個追蹤型的飛彈可以直接追蹤目標
2D遊戲
從TOP角度來看 右邊是+X 往上是+Z
現在有幾個情況
飛彈模型剛從網路上抓下來的時候是橫的
o======>
我可以比他加入一些要素以後變成Prefab
Prefab也可以轉角度
y轉-90度可以變成這樣(大概看得懂就好= =)
^
i
i
o
之後從Prefab拉近螢幕角度都沒問題
因為飛彈本來就是要往上射
但是我在寫腳本的時候 可能角度那邊一直被搞混
目前是在主角飛機的scripts按下一個鍵以後 先尋找tag=enemy的敵人
if(target = GameObject.FindGameObjectWithTag("BossEnemy"))
{
Vector3 relativePosition = player_transform.position
- target.transform.position;
//開始生子彈
Instantiate(rocket_transform,
player_transform.position,
Quaternion.LookRotation(relativePosition));
}
我把元素都分行, 希望大家都看的懂
再配合我子彈自己的scripts:
this.transform.Translate(new Vector3(0, 0, -speed * Time.deltaTime) );
到目前為止, 子彈可以生成沒錯, 軌跡也有自動搜尋敵人的功能
但是為什麼子彈就是會一直橫的去找敵人飛機啊Q_Q
就是跟一開始模型的rotation一樣 不管我Prefab怎麼設定都沒用...
我試著用this.transform.rotation去改角度, 可是發現越改越亂
不是飛彈自己亂繞就是追蹤功能不對
不知道有沒有前輩能夠指點我一下是我哪邊弄錯了?
或是我該找哪個方向的資料...
p.s 我有試著執行遊戲然後再暫停遊戲 去看生成的那些子彈
我想我應該是
物體生成角度 跟 物體本身的角度 搞混了?
因為我看每個飛彈的角度在Y方向加90度就是我要的
可是不知道該在哪邊改這個東西
新手發問
請見諒
作者: laikyo (六元)   2015-08-08 14:25:00
再包一層空物件 因為你的物件本身帶角度
作者: JKT48 (JKT48)   2015-08-08 14:28:00
前輩可以在說明詳細點嗎? 我爬網站也有人說包空物件但我不太懂這樣是什麼意思 謝謝是有一點父物件跟子物件的關係?
作者: ahsdf0910 (君)   2015-08-08 18:16:00
應該類似子 父關係 先創一個empty把子彈丟進去調整試試看

Links booklink

Contact Us: admin [ a t ] ucptt.com