Пример #1
0
        //描画オブジェクトを作成
        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);
        }
Пример #2
0
        /// <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);
        }
Пример #3
0
 /// <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));
 }
Пример #4
0
 /// <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()));
 }