/// <summary> /// 播放零件模型协程 /// </summary> /// <returns></returns> IEnumerator OnPlayIEnumerator(GameObject _GameObject) { IndividualModelLogic _IndividualModelLogic = _GameObject.GetComponent <IndividualModelLogic>(); while (true) { if (PlayState.Playing == _IndividualModelLogic._Model.OnPlayState) { if (_IndividualModelLogic._Model.OnPlayTime >= _IndividualModelLogic._Model.OnPlayTotalTime) { _IndividualModelLogic._Model.OnPlayState = PlayState.Stop; _IndividualModelLogic._Model.OnPlayTime = _IndividualModelLogic._Model.OnPlayTotalTime; } else { _IndividualModelLogic._Model.OnPlayTime += Time.deltaTime; } _IndividualModelLogic._Model.GameObj.transform.position = Vector3.Lerp(_IndividualModelLogic._Model.StartPos, _IndividualModelLogic._Model.EndPos, _IndividualModelLogic._Model.OnPlayTime / _IndividualModelLogic._Model.OnPlayTotalTime); } else if (PlayState.FallBack == _IndividualModelLogic._Model.OnPlayState) { if (_IndividualModelLogic._Model.OnPlayTime <= 0) { _IndividualModelLogic._Model.OnPlayState = PlayState.None; _IndividualModelLogic._Model.OnPlayTime = 0; } else { _IndividualModelLogic._Model.OnPlayTime -= Time.deltaTime; } _IndividualModelLogic._Model.GameObj.transform.position = Vector3.Lerp(_IndividualModelLogic._Model.StartPos, _IndividualModelLogic._Model.EndPos, _IndividualModelLogic._Model.OnPlayTime / _IndividualModelLogic._Model.OnPlayTotalTime); } yield return(new WaitForSeconds(0)); } }
IEnumerator OnPlayMechanicalSoundIEnumerator(GameObject _GameObject) { IndividualModelLogic _IndividualModelLogic = _GameObject.GetComponent <IndividualModelLogic>(); bool playSound = false; while (true) { if (PlayState.Playing == _IndividualModelLogic._Model.OnPlayState) { if (false == playSound) { PlayMechanicalSound(IntroductionSpeechList[_IndividualModelLogic._Model.MechanicalSoundID]); playSound = true; } } else if (PlayState.FallBack == _IndividualModelLogic._Model.OnPlayState) { if (false == playSound) { PlayMechanicalSound(IntroductionSpeechList[_IndividualModelLogic._Model.MechanicalSoundID]); playSound = true; } } else { playSound = false; } yield return(new WaitForSeconds(0)); } }
public override void OnInspectorGUI() { IndividualModelLogic _IndividualModelLogic = (IndividualModelLogic)target; EditorGUILayout.BeginHorizontal(); GUILayout.Space(20); EditorGUILayout.BeginVertical(); EditorGUILayout.BeginHorizontal(); Setting = EditorGUILayout.Foldout(Setting, "零件参数设置"); if (GUILayout.Button("所有零件配置面板", GUILayout.Width(100), GUILayout.Height(20))) { TestListView.TestListViewButton.SetSelectRow(_IndividualModelLogic.gameObject); Selection.activeGameObject = GlobalVar._FatherGameObject; } EditorGUILayout.EndHorizontal(); if (Setting) { if (GUILayout.Button(_IndividualModelLogic._Model.PlayBtnImage, GUILayout.Width(30), GUILayout.Height(20))) { if (PlayState.None == _IndividualModelLogic._Model.OnPlayState) { _IndividualModelLogic._Model.OnPlayState = PlayState.Playing; } else if (PlayState.Stop == _IndividualModelLogic._Model.OnPlayState) { _IndividualModelLogic._Model.OnPlayState = PlayState.FallBack; } } if (PlayState.Playing == _IndividualModelLogic._Model.OnPlayState) { _IndividualModelLogic._Model.PlayBtnImage = GlobalVar.CustomInspectorButPic2; GlobalVar._IndividualModelManager.OnPlay(_IndividualModelLogic.gameObject); } else if (PlayState.FallBack == _IndividualModelLogic._Model.OnPlayState) { _IndividualModelLogic._Model.PlayBtnImage = GlobalVar.CustomInspectorButPic1; GlobalVar._IndividualModelManager.OnPlay(_IndividualModelLogic.gameObject); } else if (PlayState.None == _IndividualModelLogic._Model.OnPlayState) { _IndividualModelLogic._Model.PlayBtnImage = GlobalVar.CustomInspectorButPic1; } else if (PlayState.Stop == _IndividualModelLogic._Model.OnPlayState) { _IndividualModelLogic._Model.PlayBtnImage = GlobalVar.CustomInspectorButPic2; } _IndividualModelLogic._Model.EndPos = EditorGUILayout.Vector3Field("目标位置", _IndividualModelLogic._Model.EndPos); EditorGUI.BeginDisabledGroup(true); _IndividualModelLogic._Model.StartPos = EditorGUILayout.Vector3Field("源位置", _IndividualModelLogic._Model.StartPos); EditorGUI.EndDisabledGroup(); _IndividualModelLogic._Model.IsMove = GUILayout.Toggle(_IndividualModelLogic._Model.IsMove, "是否随上一个零件模型一起被拆装", GUILayout.Width(180), GUILayout.Height(20)); EditorGUILayout.BeginHorizontal(); EditorGUILayout.SelectableLabel("拆机声音", GUILayout.Width(80)); _IndividualModelLogic._Model.MechanicalSoundID = EditorGUILayout.Popup(_IndividualModelLogic._Model.MechanicalSoundID, _IndividualModelLogic.MechanicalSoundNameList.ToArray(), GUILayout.Width(120)); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); EditorGUILayout.SelectableLabel("语音介绍", GUILayout.Width(80)); _IndividualModelLogic._Model.IntroductionSpeechID = EditorGUILayout.Popup(_IndividualModelLogic._Model.IntroductionSpeechID, _IndividualModelLogic.IntroductionSpeechNameList.ToArray(), GUILayout.Width(120)); EditorGUILayout.EndHorizontal(); } EditorGUILayout.EndVertical(); EditorGUILayout.BeginHorizontal(); }