예제 #1
0
        private void Reset()
        {
            try
            {
                _Colliders.Clear();
                UnrefLuaObject();
                ClearAllBehavior();

                if (_TimerList != null)
                {
                    _TimerList.Clear();
                    _TimerList = null;
                }
                _SubobjectCollideTrans = null;

                if (ObjType == OBJ_TYPE.HOSTPLAYER)
                {
                    Main.HostPlayerRadius = 0.1f;
                }

                OffsetY           = 0;
                UsingGroundNormal = false;

                PhysicsHandler = null;
                _32BitID       = 0;
                _Radius        = 0;
                ObjType        = OBJ_TYPE.NONE;
            }
            catch (Exception e)
            {
                Debug.LogException(e);
            }
        }
예제 #2
0
    /**
     * GUIを表示します
     */
    void OnGUI()
    {
        logPrefix = "[" + this.GetType().Name + "] ";

        // ヒエラルキーでオブジェクトを選択していた場合は初期値をいい感じにセットしておく
        // 規則的に並べたオブジェクトを2個以上選択していた場合は、同じように並ぶように初期値をセットする
        if (!isInitialized && Selection.gameObjects != null && 2 <= Selection.gameObjects.Length)
        {
            SetInitValues(Selection.gameObjects);
            isInitialized = true;
        }
        else if(!isInitialized)
        {
            UnityEditor.EditorUtility.DisplayDialog("Advancedモードで開きます", "通常モードはHierarchyで2オブジェクト以上選択してから「Shuriken Duplicate」を開きなおしてください", "OK");
            showAdvancedSetting = true;
            isInitialized       = true;  
        }


        GUIStyle bold = new GUIStyle()
        {
            //alignment = TextAnchor.MiddleCenter,
            fontStyle = FontStyle.Bold,
        };

        EditorGUILayout.LabelField("オブジェクト配置", bold);
        selectedParentObject = EditorGUILayout.ObjectField("親", selectedParentObject, typeof(GameObject), true) as GameObject;
        makeObjectNum        = EditorGUILayout.IntField("配置数(選択中含め)", makeObjectNum);

        if (showAdvancedSetting)
        {
            makeObjectIndex = EditorGUILayout.IntField("何個目から作成するか", makeObjectIndex);
        }

        if (showAdvancedSetting)
        {
            slideVectorA = EditorGUILayout.Vector3Field("配置間隔", slideVectorA);
        }
        if (showAdvancedSetting)
        {
            slideNumA = EditorGUILayout.IntField("連続回数", slideNumA);
        }

        if (showAdvancedSetting)
        {
            EditorGUILayout.LabelField("ジグザグ配置用(連続回数を1以上にすると有効)", bold);
            slideVectorB = EditorGUILayout.Vector3Field("配置間隔", slideVectorB);
            slideNumB    = EditorGUILayout.IntField("連続回数", slideNumB);
        }



        EditorGUILayout.Space();


        EditorGUILayout.LabelField("作成するオブジェクト", bold);
        makeObjectName = EditorGUILayout.TextField("名前(自動連番)", makeObjectName);
        if (showAdvancedSetting)
        {
            makeObjectPos = EditorGUILayout.Vector3Field("初期Position", makeObjectPos);
        }
        makeObjectScale  = EditorGUILayout.Vector3Field("Scale", makeObjectScale);
        makeObjectRotate = EditorGUILayout.Vector3Field("Rotate", makeObjectRotate);
        objType          = (OBJ_TYPE)EditorGUILayout.EnumPopup("オブジェクトの種類", objType);


        EditorGUILayout.Space();

        if (sortedSelectedGameObjects.Length > 0)
        {
            isAlsoUpdateSelectedObject = EditorGUILayout.Toggle("選択オブジェクト更新", isAlsoUpdateSelectedObject);
        }

        EditorGUILayout.Space();


        // ボタンをGUIに配置、ボタン押下でオブジェクト作成する
        if (GUILayout.Button("オブジェクト作成"))
        {
            Make();
        }
    }