C# Unity 2D-在NGUI'内动态实例化新预制件;s";“用户界面根”;(作为父母)

C# Unity 2D-在NGUI'内动态实例化新预制件;s";“用户界面根”;(作为父母),c#,unity3d,unityscript,ngui,C#,Unity3d,Unityscript,Ngui,我是新来的。当我从脚本内部实例化一个新的预制游戏对象时,如下所示: GameObject newArrow = (GameObject)Instantiate(arrowPrefab); newArrow.transform.position = arrowSpawnTransform.position; 但这是在根层次结构中创建对象(而不是在NGUI的“UI根”中)。当我在UI根目录(NGUI)之外添加任何对象时,它会将其添加到远离相机的某个位置,而且尺寸也很大。有人能帮我在“UI根目录

我是新来的。当我从脚本内部实例化一个新的预制游戏对象时,如下所示:

GameObject newArrow = (GameObject)Instantiate(arrowPrefab);  
newArrow.transform.position = arrowSpawnTransform.position;
但这是在根层次结构中创建对象(而不是在NGUI的“UI根”中)。当我在UI根目录(NGUI)之外添加任何对象时,它会将其添加到远离相机的某个位置,而且尺寸也很大。有人能帮我在“UI根目录”下添加新创建的预置吗

如果有人能让我知道与原住民团结和NGUI相关的定位和规模,那就太好了。我很努力,但不知道该把什么东西放在哪里,放在多大的地方,这样它才能像预期的那样出来。我将感谢任何能提供的帮助。谢谢

编辑: 我已经找到了一种方法,可以通过以下方式将新预置放置在“UI根目录”中: newArrow.transform.parent=gameObject.transform.parent; 在实例化之后


但规模仍然很大。它比屏幕大很多倍。请帮我做这个。我应该做什么?

在NGUI中使用UI元素时,不要使用实例化。使用NGUITools.AddChild(父对象,预置)。

NGUI相对于场景中其余对象的比例相当小。如果查看UIRoot对象,您会注意到其比例是以千分之一米为单位测量的(默认对象分辨率1通常表示一米)。这就是为什么当您实例化一个预置并将其附加到UIRoot下的任何对象时,相对于UIPanel的比例,它看起来是巨大的。您可以手动将对象缩小到适当的大小,或者使用NGUITools.AddChild(parent,prefact)让NGUI为您完成(如Dover8所示)。事实上,这是正确的做法。不要试图手动操作。结果将是不可预测的,并可能导致组件的不当行为。以下是Tasharen论坛关于此主题的链接:

定位有点复杂。一切都是相对于锚的。锚定位置是父对象(通常是面板)和目标(通常是某种形式的小部件,如精灵或标签)之间的关系。它们由相对于面板(或父对象)边缘的四个值控制,即相对于目标边缘的“右”、“左”、“下”和“上”(因位置而异)。每一个都由一个整数值(以像素为单位)修改,该整数值修改目标相对于父对象的尺寸。NGUI中包含了许多示例。我建议你检查一下。特别要注意示例1-锚。通过研究这些例子,我学到了很多,但它们并没有真正涵盖NGUI的全部功能,但它们是一个很好的起点