实例化的预制尺寸太大Unity C#

时间:2016-07-16 00:34:52

标签: c# user-interface object unity3d unity5

当我实例化我的预制件

        copyOfSpellObject = (GameObject)Instantiate(gameObject, transform.position, transform.rotation);
        Item_Spell itemSpell = copyOfSpellObject.GetComponent<Item_Spell>();
        itemSpell.SpellObject = GetComponent<Item_Spell>().SpellObject;
        copyOfSpellObject.transform.SetParent(transform, false);
        copyOfSpellObject.transform.position = Camera.main.ScreenToWorldPoint(new Vector3(transform.position.x, transform.position.y, 0));
        copyOfSpellObject.transform.SetParent(transform.parent.parent.parent, false);

变得超大

正常 - http://prntscr.com/btgzg7

大 - http://prntscr.com/btgzke

为什么?只有当我将游戏对象作为孩子放到特定的父母身上时才会出现问题,更具体地说,在此之后每个父母都会导致问题,包括此transform.parent.parent.parent

1 个答案:

答案 0 :(得分:0)

实例化后,单击层次结构中的对象。你看到&#39;规模中的任何大数字&#39;属性(在转换组件中)?如果您这样做,请尝试将这些数字全部设置为1,看看它是否符合您的要求。然后在代码中将对象的比例设置为1(或任何你喜欢的大小),如下所示:

copyOfSpellObject = (GameObject)Instantiate(gameObject, transform.position, transform.rotation);
    Item_Spell itemSpell = copyOfSpellObject.GetComponent<Item_Spell>();
    itemSpell.SpellObject = GetComponent<Item_Spell>().SpellObject;
    copyOfSpellObject.transform.SetParent(transform, false);
    copyOfSpellObject.transform.position = Camera.main.ScreenToWorldPoint(new Vector3(transform.position.x, transform.position.y, 0));
    copyOfSpellObject.transform.SetParent(transform.parent.parent.parent, false);
    copyOfSpellObject.transform.localScale = new Vector3(1,1,1);

当为最初在没有父级的情况下创建的实例化对象提供父级时,转换往往变得非常奇怪。

如果有帮助,请告诉我