0
我想實例化一個對象(A)作爲一個畫布的孩子。 A的位置是使用B對象的位置設置的,也是Canvas的子項。Unity3d瞭解定位系統
不知道這對我的問題是否有用,但A和B都有一個孩子。
當我產卵A時,它的位置根本不是B的位置,即使我的debug.log()
這樣說。
以下是我有:
下面是調試說:
下面是代碼:
if (Input.GetButtonDown("Fire1"))
{
GameObject Laser_Projectile = Instantiate(Resources.Load("Sprites/Object_Laser_Projectile") as GameObject);
Laser_Projectile.transform.SetParent(GameObject.Find("Canvas").transform, false);
this.transform.localPosition = GameObject.Find("Player_Objects").transform.localPosition;
我試着與職位和localPosition合作,沒辦法讓它工作。 我也嘗試使用setParent參數(false或true),但將其設置爲true使其甚至更糟。
我的問題是:我錯過了什麼,我不理解?我以前從未遇到過這個問題。
設置對象的
localPosition
如果你設置對象的父對象,你應該可以將它的本地位置設置爲'new Vector3(0,0,0)',並且它將會進入父對象的位置 –我對「Player_Objects」的子對象做了這個操作,效果很好,但是與「Player_Objects」本身......好吧,這是我不知道...... – Andromelus
正如Alfie所說。 「localPosition」意思是「我相對於我父母的位置」。換句話說,父母在世界的哪個地方(或者在他們自己的父母之內)並不重要,它是孩子的localPosition的VectorX.zero將是父母的中間位置。你所做的是,你將對象的位置設置爲與父對象相同的*數值*,這樣就可以取代它。如果父母爲10,10,並且您將孩子的localPosition設置爲10,10,則孩子將「全局」爲20,20,因爲它與父母的中間點相差10個單位。 – 2016-10-28 10:07:37