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