C# 创建游戏时,设置对象位置时出错
这是我的密码C# 创建游戏时,设置对象位置时出错,c#,unity3d,C#,Unity3d,这是我的密码 GameObject tocreate = new GameObject ("newsstory1"); tocreate.AddComponent<SpriteRenderer> (); tocreate.GetComponent<SpriteRenderer> ().sprite = newsbuilten; tocreate.transform.parent = notifcationparents.transform;
GameObject tocreate = new GameObject ("newsstory1");
tocreate.AddComponent<SpriteRenderer> ();
tocreate.GetComponent<SpriteRenderer> ().sprite = newsbuilten;
tocreate.transform.parent = notifcationparents.transform;
tocreate.transform.localScale = new Vector3 (6, 6, 0);
tocreate.transform.position = new Vector3 (80, 18 ,5);
gameobjecttocreate=newgameobject(“新闻故事1”);
tocreate.AddComponent();
tocreate.GetComponent().sprite=newsbuilten;
tocreate.transform.parent=notifcationparents.transform;
tocreate.transform.localScale=newvector3(6,6,0);
tocreate.transform.position=新向量3(80,18,5);
我的问题是当我运行这个游戏时,游戏对象处于错误的位置;这是图片
这是正常的。不要担心你在编辑器中看到的位置。这是因为您正在设置父游戏对象 假设父对象(
notifcationparents
)位于以下位置:
5
,10
,30
然后创建一个名为“newsstory1”的新游戏对象,并将其位置设置为:
80
,18
,5
新游戏对象将移动到该位置,但您将看到:
75
,8
,-25
因为这就是(
80
,18
,5
)--(5
,10
,30
)的含义。你只是看到一个相对于其父游戏对象的位置。如果没有父游戏对象,就不会发生这种情况。这是正常的。不要担心你在编辑器中看到的位置。这是因为您正在设置父游戏对象
假设父对象(notifcationparents
)位于以下位置:
5
,10
,30
然后创建一个名为“newsstory1”的新游戏对象,并将其位置设置为:
80
,18
,5
新游戏对象将移动到该位置,但您将看到:
75
,8
,-25
因为这就是(
80
,18
,5
)--(5
,10
,30
)的含义。你只是看到一个相对于其父游戏对象的位置。如果没有父游戏对象,则不会发生这种情况。不要使用transform.parent,而是使用transform.SetParent()。
另外,首先设置游戏对象的位置,然后使用transform.SetParent(parent,true)设置其父对象。不要使用transform.parent,而是使用transform.SetParent()。
另外,首先设置游戏对象的位置,然后使用transform.SetParent(parent,true)设置它的父对象。位置是相对于transform.parent的。可能?
notificationparents.transform
对象的绝对位置是什么?0,0,0是向量3位置位置相对于transform.Parents
可能?notificationparents.transform
对象的绝对位置是什么?0,0,0是向量3的位置