//描画オブジェクトを作成 AdvGraphicObject CreateObject(string name, AdvGraphicInfo grapic) { AdvGraphicObject obj; //IAdvGraphicObjectがAddComponentされたプレハブをリソースに持つかチェック GameObject prefab; if (grapic.TryGetAdvGraphicObjectPrefab(out prefab)) { //プレハブからリソースオブジェクトを作成して返す GameObject go = GameObject.Instantiate(prefab); go.name = name; obj = go.GetComponent <AdvGraphicObject>(); rootObjects.AddChild(obj.gameObject); } else { obj = rootObjects.AddChildGameObjectComponent <AdvGraphicObject>(name); } obj.Init(this, grapic); //最初の描画時は位置をリセットする if (currentGraphics.Count == 0) { this.ResetCanvasRectTransform(); } currentGraphics.Add(obj.name, obj); return(obj); }
/// <summary> /// 指定のコンポーネントを階層以下から探し、なかったら子オブジェクトとしてそのコンポーネントを持つ子オブジェクトを作成する /// </summary> public static T GetCompoentInChildrenCreateIfMissing <T>(this Transform t, string name) where T : Component { T component = t.GetComponentInChildren <T>(); if (component == null) { component = t.AddChildGameObjectComponent <T>(name); } return(component); }
/// <summary> /// 指定のコンポーネントつきのGameObjectを作成して子として追加 /// </summary> /// <typeparam name="T">コンポーネントの型</typeparam> /// <param name="name">作成する子の名前</param> /// <param name="localPosition">子に設定するローカル座標</param> /// <returns>追加済みの子</returns> public static T AddChildGameObjectComponent <T>(this Transform t, string name, Vector3 localPosition) where T : Component { return(t.AddChildGameObjectComponent <T>(name, localPosition, Vector3.one)); }
/// <summary> /// 指定のコンポーネントつきのGameObjectを作成して子として追加 /// </summary> /// <typeparam name="T">コンポーネントの型</typeparam> /// <param name="name">作成する子の名前</param> /// <returns>追加済みの子</returns> public static T AddChildGameObjectComponent <T>(this Transform t, string name) where T : Component { return(t.AddChildGameObjectComponent <T>(name, Vector3.zero, Vector3.one)); }
public static T AddChildGameObjectComponent <T>(Transform parent, string name, Vector3 localPosition, Vector3 localScale) where T : Component { return(parent.AddChildGameObjectComponent <T>(name, localPosition, localScale)); }
public static T AddChildGameObjectComponent <T>(Transform parent, string name) where T : Component { return(parent.AddChildGameObjectComponent <T>(name, Vector3.get_zero(), Vector3.get_one())); }