Esempio n. 1
0
    public void ExecuteEffect(string audioEffect)
    {
        AudioStruct clip = listAudios.Find(audio => audio.name == audioEffect);

        audioSourceCurrent      = EffectsFree();
        audioSourceCurrent.clip = clip.audioClip;
        audioSourceCurrent.loop = clip.isLoop;
        audioSourceCurrent.Play();
    }
Esempio n. 2
0
    void DrawAudio(int id)
    {
        if (!(id < mData.AnimationSkillList.Count))
        {
            return;
        }

        for (int i = 0; i < mData.AnimationSkillList[id].AudioStructList.Count; i++)
        {
            AudioStruct _eff = mData.AnimationSkillList[id].AudioStructList[i];

            EditorGUI.indentLevel++;
            EditorGUILayout.BeginVertical(EditorStyles.helpBox);

            string _titleName = _eff.Audio ? _eff.Audio.name : "Audio" + (i + 1).ToString();
            EditorGUILayout.BeginHorizontal();
            //此子特效的界面折叠
            _eff.isFoldout = EditorGUILayout.Foldout(_eff.isFoldout, _titleName);
            GUILayout.FlexibleSpace();
            //此子特效是否可用
            _eff.isEnabled = EditorGUILayout.Toggle("", _eff.isEnabled);

            if (GUILayout.Button("DELETE"))
            {
                mData.AnimationSkillList[id].AudioStructList.Remove(_eff);
                return;
            }

            EditorGUILayout.EndHorizontal();

            mData.AnimationSkillList[id].AudioStructList[i] = _eff;

            if (_eff.isFoldout)
            {
                EditorGUI.BeginDisabledGroup(!_eff.isEnabled);
                _eff.Audio = (AudioClip)EditorGUILayout.ObjectField("Audio", _eff.Audio, typeof(AudioClip), true);

                _eff.DelayTime = EditorGUILayout.FloatField("Delay Time", _eff.DelayTime);
                if (_eff.DelayTime > mData.AnimationSkillList[id].fTime)
                {
                    _eff.DelayTime = mData.AnimationSkillList [id].fTime;
                }

                _eff.LifeTime = EditorGUILayout.FloatField("Life Time", _eff.LifeTime);

                mData.AnimationSkillList[id].AudioStructList[i] = _eff;
            }
            EditorGUI.EndDisabledGroup();


            EditorGUILayout.EndVertical();
            EditorGUI.indentLevel--;
        }
    }
Esempio n. 3
0
    public AudioSource ExecuteEffect(TypeSound audioEffect)
    {
        AudioStruct clip = listAudios.Find(audio => audio.name == audioEffect.ToString());

        audioSourceCurrent      = EffectsFree();
        audioSourceCurrent.clip = clip.audioClip;
        audioSourceCurrent.loop = clip.isLoop;
        audioSourceCurrent.Play();

        return(audioSourceCurrent);
    }
Esempio n. 4
0
    IEnumerator WaitPlayAudio(AudioStruct es)
    {
        if (es.isEnabled)
        {
            yield return(new WaitForSeconds(es.DelayTime));
        }
        else
        {
            yield break;
        }

        if (es.Audio != null)
        {
            AudioClip _startEff = GameObject.Instantiate <AudioClip> (es.Audio, this.transform.position, Quaternion.identity);
            AudioSource.PlayClipAtPoint(_startEff, transform.position);
            Destroy(_startEff, es.LifeTime);
        }

        yield return(new WaitForEndOfFrame());
    }
Esempio n. 5
0
 public void PlaySFX(AudioStruct au)
 {
     if (au.clip != null)
     {
         m_sources[m_curSource].clip = au.clip;
         m_sources[m_curSource].volume = au.volume;
         m_sources[m_curSource].Play();
         NextSource();
     }
 }
Esempio n. 6
0
    void DrawAnimation()
    {
        if (mData.AnimationSkillList == null)
        {
            return;
        }

        for (int i = 0; i < mData.AnimationSkillList.Count; i++)
        {
            EditorGUILayout.Space();

            AnimationSkillStruct _ass = mData.AnimationSkillList[i];

            if (_ass.IsFoldout)
            {
                EditorGUILayout.BeginVertical(EditorStyles.helpBox);

                EditorGUILayout.LabelField(_ass.Type.ToString());
                if (GUILayout.Button("Preview"))
                {
                    mASD.PlayAnimaState(_ass.Type);
                }

                _ass.AnimationClip = (AnimationClip)EditorGUILayout.ObjectField("AnimaitonClip:", _ass.AnimationClip, typeof(AnimationClip), true);

                EditorGUILayout.BeginHorizontal();
                if (_ass.AnimationClip == null)
                {
                    _ass.fTime = 1f;
                }
                else
                {
                    _ass.fTime = _ass.AnimationClip.length;
                }
                EditorGUILayout.LabelField("NextAnima After:", _ass.fTime.ToString());
                _ass.NextType = (NFAnimaStateType)EditorGUILayout.EnumPopup(_ass.NextType);

                EditorGUILayout.EndHorizontal();

                AnimatorController ctl = (AnimatorController)mASD.GetComponent <Animator> ().runtimeAnimatorController;
                if (ctl != null)
                {
                    AnimatorStateMachine state_machine = ctl.layers[0].stateMachine;
                    for (int j = 0; j < state_machine.states.Length; ++j)
                    {
                        if (state_machine.states [j].state.name == _ass.Type.ToString())
                        {
                            String        strPath = AssetDatabase.GetAssetPath(_ass.AnimationClip);
                            AnimationClip anim    = AssetDatabase.LoadAssetAtPath(strPath, typeof(AnimationClip)) as AnimationClip;
                            state_machine.states [j].state.motion = anim;
                            break;
                        }
                    }
                }

                mData.AnimationSkillList[i] = _ass;

                //添加特效与删除片断
                EditorGUILayout.BeginHorizontal();
                if (GUILayout.Button("ADD EFFECT"))
                {
                    EffectStruct _es = new EffectStruct();
                    _es.LifeTime  = 3;
                    _es.isFoldout = true;
                    mData.AnimationSkillList[i].EffectStructList.Add(_es);
                }
                if (GUILayout.Button("ADD Audio"))
                {
                    AudioStruct _es = new AudioStruct();
                    _es.LifeTime  = 3;
                    _es.isFoldout = true;
                    mData.AnimationSkillList[i].AudioStructList.Add(_es);
                }
                if (GUILayout.Button("ADD Bullet"))
                {
                    BulletStruct _es = new BulletStruct();
                    _es.isFoldout = true;
                    mData.AnimationSkillList[i].BulletStructList.Add(_es);
                }



                EditorGUILayout.EndHorizontal();

                EditorGUILayout.BeginHorizontal();
                if (GUILayout.Button("ADD Damage"))
                {
                    DamageStruct _es = new DamageStruct();
                    _es.isFoldout = true;
                    mData.AnimationSkillList[i].DamageStructList.Add(_es);
                }

                if (GUILayout.Button("ADD Movement"))
                {
                    MovementStruct _es = new MovementStruct();
                    _es.isFoldout = true;
                    mData.AnimationSkillList[i].MovementStructList.Add(_es);
                }

                if (GUILayout.Button("ADD Camera"))
                {
                    CameraStruct _es = new CameraStruct();
                    _es.isFoldout = true;
                    mData.AnimationSkillList[i].CameraStructList.Add(_es);
                }

                EditorGUILayout.EndHorizontal();

                if (mData.AnimationSkillList.Count > 0)
                {
                    DrawEffect(i);
                    DrawAudio(i);
                    DrawMovement(i);
                    DrawDamage(i);
                    DrawBullet(i);
                    DrawCamera(i);
                }
                EditorGUILayout.EndVertical();
            }
        }
    }