예제 #1
0
    public static PlayerEffectData[] EditPlayerEffectDataArray(GameObject gameObject,
                                                               PlayerEffectData[] PlayerEffectDataArray)
    {
        if (GUILayout.Button("Add Effect data"))
        {
            PlayerEffectData EffectData = new PlayerEffectData();
            PlayerEffectDataArray = Util.AddToArray <PlayerEffectData> (EffectData, PlayerEffectDataArray);
        }
        for (int i = 0; i < PlayerEffectDataArray.Length; i++)
        {
            PlayerEffectData EffectData = PlayerEffectDataArray [i];
            EditorGUILayout.LabelField("------------------------ " + EffectData.Name);
            EffectData.Name            = EditorGUILayout.TextField(new GUIContent("Name", ""), EffectData.Name);
            EffectData.DamageForm      = (DamageForm)EditorGUILayout.EnumPopup("Damage form:", EffectData.DamageForm);
            EffectData.UseGlobalEffect = EditorGUILayout.Toggle(new GUIContent("Use global effect?", "是否使用全局Effect?"), EffectData.UseGlobalEffect);

            if (EffectData.PlayParticle = EditorGUILayout.BeginToggleGroup(new GUIContent("Play local particle object?", ""), EffectData.PlayParticle))
            {
                EffectData.particlesystem = (ParticleSystem)EditorCommon.EditPopupOfTypeInChildren("Assign a particle object to play:",
                                                                                                   EffectData.particlesystem, gameObject, typeof(ParticleSystem));
            }
            EditorGUILayout.EndToggleGroup();

            if (EffectData.UseGlobalEffect)
            {
                EffectData.GlobalType = (GlobalEffectType)EditorGUILayout.EnumPopup(new GUIContent("Global effect type", "是全局Effect类型"),
                                                                                    EffectData.GlobalType);
            }
            else
            {
                EffectData.DestoryTimeOut = EditorGUILayout.FloatField(new GUIContent("LifeTime:", ""), EffectData.DestoryTimeOut);

                EffectData.EffectObject      = (GameObject)EditorGUILayout.ObjectField(new GUIContent("Effect object", ""), EffectData.EffectObject, typeof(GameObject));
                EffectData.instantiationData = EditorCommon.EditInstantiationData(" -----------  Edit instantiation data ----------- ", EffectData.instantiationData);
                //Delete this effect data
                if (GUILayout.Button("Delete EffectData:" + EffectData.Name))
                {
                    PlayerEffectDataArray = Util.CloneExcept <PlayerEffectData> (PlayerEffectDataArray, EffectData);
                }
            }
            EditorGUILayout.Space();
        }
        return(PlayerEffectDataArray);
    }
    public static PlayerEffectData[] EditPlayerEffectDataArray(GameObject gameObject,
		                                                       PlayerEffectData[] PlayerEffectDataArray)
    {
        if (GUILayout.Button ("Add Effect data")) {
            PlayerEffectData EffectData = new PlayerEffectData ();
            PlayerEffectDataArray = Util.AddToArray<PlayerEffectData> (EffectData, PlayerEffectDataArray);
        }
        for (int i = 0; i < PlayerEffectDataArray.Length; i++) {
            PlayerEffectData EffectData = PlayerEffectDataArray [i];
            EditorGUILayout.LabelField ("------------------------ " + EffectData.Name);
            EffectData.Name = EditorGUILayout.TextField (new GUIContent ("Name", ""), EffectData.Name);
            EffectData.DamageForm = (DamageForm)EditorGUILayout.EnumPopup ("Damage form:", EffectData.DamageForm);
            EffectData.UseGlobalEffect = EditorGUILayout.Toggle (new GUIContent ("Use global effect?", "是否使用全局Effect?"), EffectData.UseGlobalEffect);

            if (EffectData.PlayParticle = EditorGUILayout.BeginToggleGroup (new GUIContent ("Play local particle object?", ""), EffectData.PlayParticle)) {
                EffectData.particlesystem = (ParticleSystem)EditorCommon.EditPopupOfTypeInChildren ("Assign a particle object to play:",
                    EffectData.particlesystem, gameObject, typeof(ParticleSystem));
            }
            EditorGUILayout.EndToggleGroup ();

            if (EffectData.UseGlobalEffect) {
                EffectData.GlobalType = (GlobalEffectType)EditorGUILayout.EnumPopup (new GUIContent ("Global effect type", "是全局Effect类型"),
                        EffectData.GlobalType);
            } else {

                EffectData.DestoryTimeOut = EditorGUILayout.FloatField (new GUIContent ("LifeTime:", ""), EffectData.DestoryTimeOut);

                EffectData.EffectObject = (GameObject)EditorGUILayout.ObjectField (new GUIContent ("Effect object", ""), EffectData.EffectObject, typeof(GameObject));
                EffectData.instantiationData = EditorCommon.EditInstantiationData(" -----------  Edit instantiation data ----------- ", EffectData.instantiationData);
                //Delete this effect data
                if (GUILayout.Button ("Delete EffectData:" + EffectData.Name)) {
                    PlayerEffectDataArray = Util.CloneExcept<PlayerEffectData> (PlayerEffectDataArray, EffectData);
                }
            }
            EditorGUILayout.Space ();
        }
        return PlayerEffectDataArray;
    }