我正在開始一個簡單的 JRPG:從一組預制件中生成一個派對,然后通過改變它們的變換將每個預制件移動到適當的位置。但是看到一個奇怪的,從同一個預制件中生成的 3 個地精正在移動到完全相同的位置。從不同物件實體化的其他物件正在正確移動。
在播放器中,我可以通過改變它們的變換來移動地精,它們是分開的。然而,預制件本身正在改變位置以匹配產生的“最后一個”地精
有什么提示嗎?我是否以某種方式將它們實體化為一個公共物件?
在 PartyManager 中創建和定位的物件:
public bool playerParty = true;
public GameObject[] party=new GameObject[4];
// Start is called before the first frame update
void Start()
{
for (int i=0; i<party.Length; i ){
GameObject character = Instantiate(party[i],this.gameObject.transform);
}
positionCharacters();
}
void positionCharacters(){
float facing = -1.0f;
if(playerParty) facing=1.0f;
for (int i=0; i<party.Length; i ){
party[i].transform.localPosition = new Vector3(-0.3f*i*facing, -0.05f*i,-0.1f*i);
print(party[i] " moved to " party[i].transform.localPosition);
}
}

uj5u.com熱心網友回復:
首先,您似乎沒有存盤對實體化字符的參考,GameObject character只是立即超出范圍。如果您將三個對同一物件的參考放入其中,GameObject[] party您不應該感到驚訝,只使用最后設定的位置。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/435368.html
標籤:unity3d
上一篇:發射幾個Raycast以檢查物件
