void TriggerEvent(AIClipEvent clipEvent) { if (clipEvent is SetVelocityEvent) { SetVelocityEvent velocityEvent = clipEvent as SetVelocityEvent; mOwner.SetExtrenalVelocity(velocityEvent.velocity); } else if (clipEvent is ShowEffectEvent) { ShowEffectEvent effectEvent = clipEvent as ShowEffectEvent; Object obj = Resources.Load(effectEvent.effectName); if (obj) { Vector3 pos = mOwner.transform.TransformPoint(effectEvent.startPosition); Object.Instantiate(obj, pos, Quaternion.identity); } } else if (clipEvent is AiActionEvent) { ConductAIAction(clipEvent as AiActionEvent); } else { Debug.LogError("未实现的事件类型" + clipEvent); } }
void DrawEditUI() { GUILayout.Label("事件类型 : " + mCurEvet.ToString()); mCurEvet.eventName = EditorGUILayout.TextField("事件名称", mCurEvet.eventName); mCurEvet.triggerTime = EditorGUILayout.FloatField("触发时间", mCurEvet.triggerTime); if (mCurEvet is ShowEffectEvent) { ShowEffectEvent effectEvent = (ShowEffectEvent)mCurEvet; effectEvent.effectName = EditorGUILayout.TextField("特效资源名", effectEvent.effectName); effectEvent.startPosition = EditorGUILayout.Vector3Field("初始位置", effectEvent.startPosition); } else if (mCurEvet is PlayAudioEvent) { PlayAudioEvent mAudioEvent = mCurEvet as PlayAudioEvent; mAudioEvent.audioName = EditorGUILayout.TextField("音效资源名", mAudioEvent.audioName); } else if (mCurEvet is SetVelocityEvent) { SetVelocityEvent velocityEvent = mCurEvet as SetVelocityEvent; velocityEvent.velocity = EditorGUILayout.Vector3Field("设置速度", velocityEvent.velocity); } else if (mCurEvet is AiActionEvent) { AiActionEvent actionEvent = mCurEvet as AiActionEvent; actionEvent.actiomType = (EAiActionType)EditorGUILayout.EnumPopup("AI行为类型", actionEvent.actiomType); } }