From 8bbc03542340b4ea7ca1e2beec2f11ff335851e8 Mon Sep 17 00:00:00 2001 From: chai Date: Tue, 27 Jul 2021 09:40:26 +0800 Subject: *mic --- Assets/Scripts/Unit/Component/UnitAnimation.cs | 43 ++++++++++++++++++++-- Assets/Scripts/Unit/Component/UnitRender.cs | 15 ++------ Assets/Scripts/Unit/Component/UnitState.cs | 2 +- Assets/Scripts/Unit/Controller/PCController.cs | 22 +++++------ Assets/Scripts/Unit/Controller/UnitController.cs | 22 +++++++++-- Assets/Scripts/Unit/Editor.meta | 8 ++++ .../Unit/Editor/TriggerAnimationDicDrawer.cs | 7 ++++ .../Unit/Editor/TriggerAnimationDicDrawer.cs.meta | 11 ++++++ Assets/Scripts/Unit/UnitActionData.cs | 17 +++++++++ Assets/Scripts/Unit/UnitActionData.cs.meta | 11 ++++++ Assets/Scripts/Unit/UnitRootMotion.cs | 6 +++ 11 files changed, 134 insertions(+), 30 deletions(-) create mode 100644 Assets/Scripts/Unit/Editor.meta create mode 100644 Assets/Scripts/Unit/Editor/TriggerAnimationDicDrawer.cs create mode 100644 Assets/Scripts/Unit/Editor/TriggerAnimationDicDrawer.cs.meta create mode 100644 Assets/Scripts/Unit/UnitActionData.cs create mode 100644 Assets/Scripts/Unit/UnitActionData.cs.meta (limited to 'Assets/Scripts/Unit') diff --git a/Assets/Scripts/Unit/Component/UnitAnimation.cs b/Assets/Scripts/Unit/Component/UnitAnimation.cs index ac04148d..568863c9 100644 --- a/Assets/Scripts/Unit/Component/UnitAnimation.cs +++ b/Assets/Scripts/Unit/Component/UnitAnimation.cs @@ -6,13 +6,48 @@ using UnityEngine; [DisallowMultipleComponent] public class UnitAnimation : UnitComponent { - private Animator m_Animator; + // animator trigger值,切换动画 + public enum ETrigger + { + Nein = 0, + ToIdle , + ToMove , + ToSpawn , + + ToDie , + ToHitAir , + ToHitAirAir, + + ToHitKnockDown, + + ToJump, + ToWalk, + } + + private Animator m_Animator; private TimelineEvent m_Timeline; - public void Play() - { + private UnitActionData m_ActionData; + + public override void Initialize() + { + base.Initialize(); + + m_Timeline = this.m_Owner.unitObj.GetOrAddComponent(); + m_Animator = this.m_Owner.unitObj.GetComponent(); + + if(m_Animator == null) + { + LogHelper.LogError("没有挂Animator组件"); + } + + } - } + public void Play(ETrigger trigger) + { + string toAnim = trigger.ToString(); + m_Animator.SetTrigger(toAnim); + } } diff --git a/Assets/Scripts/Unit/Component/UnitRender.cs b/Assets/Scripts/Unit/Component/UnitRender.cs index cf308bab..2ba53a7d 100644 --- a/Assets/Scripts/Unit/Component/UnitRender.cs +++ b/Assets/Scripts/Unit/Component/UnitRender.cs @@ -2,18 +2,11 @@ using System.Collections.Generic; using UnityEngine; +// 控制角色渲染 [DisallowMultipleComponent] -public class UnitRender : MonoBehaviour +public class UnitRender : UnitComponent { - // Start is called before the first frame update - void Start() - { - - } - // Update is called once per frame - void Update() - { - - } + + } diff --git a/Assets/Scripts/Unit/Component/UnitState.cs b/Assets/Scripts/Unit/Component/UnitState.cs index d5b91cec..3832c933 100644 --- a/Assets/Scripts/Unit/Component/UnitState.cs +++ b/Assets/Scripts/Unit/Component/UnitState.cs @@ -85,7 +85,7 @@ public class UnitState : UnitComponent } IEnumerator Idle(IdleParam param) { - m_Owner.unitAnimation.Play(); + //m_Owner.unitAnimation.Play(); yield return null; } void OnIdleExit(EUnitState nextState) diff --git a/Assets/Scripts/Unit/Controller/PCController.cs b/Assets/Scripts/Unit/Controller/PCController.cs index 8350b503..58745311 100644 --- a/Assets/Scripts/Unit/Controller/PCController.cs +++ b/Assets/Scripts/Unit/Controller/PCController.cs @@ -2,18 +2,18 @@ using System.Collections.Generic; using UnityEngine; +// 玩家角色控制器 [DisallowMultipleComponent] -public class PCController : UnitComponent +public class PCController : UnitController { - // Start is called before the first frame update - void Start() - { - - } - // Update is called once per frame - void Update() - { - - } + public override void Initialize(GameObject obj) + { + base.Initialize(obj); + + + + } + + } diff --git a/Assets/Scripts/Unit/Controller/UnitController.cs b/Assets/Scripts/Unit/Controller/UnitController.cs index 76dc9791..066aad58 100644 --- a/Assets/Scripts/Unit/Controller/UnitController.cs +++ b/Assets/Scripts/Unit/Controller/UnitController.cs @@ -4,6 +4,8 @@ using UnityEngine; public class UnitController : MonoBehaviour { + // 角色共有的组件 + public UnitRender unitRender; public UnitState unitState; @@ -12,10 +14,24 @@ public class UnitController : MonoBehaviour public UnitSkill unitSkill; - public void Initialize() + public GameObject unitObj; // 角色模型 + + public virtual void Initialize( GameObject obj ) { - unitRender = GetComponent(); - + unitObj = obj; + + unitRender = gameObject.GetOrAddComponent(); + unitRender.Initialize(); + + unitState = gameObject.GetOrAddComponent(); + unitState.Initialize(); + + unitAnimation = gameObject.GetOrAddComponent(); + unitAnimation.Initialize(); + + unitSkill = gameObject.GetOrAddComponent(); + unitSkill.Initialize(); + } } diff --git a/Assets/Scripts/Unit/Editor.meta b/Assets/Scripts/Unit/Editor.meta new file mode 100644 index 00000000..45bf7867 --- /dev/null +++ b/Assets/Scripts/Unit/Editor.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 70a2febe367468c4ebf5c1b466b1a005 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Unit/Editor/TriggerAnimationDicDrawer.cs b/Assets/Scripts/Unit/Editor/TriggerAnimationDicDrawer.cs new file mode 100644 index 00000000..8dace739 --- /dev/null +++ b/Assets/Scripts/Unit/Editor/TriggerAnimationDicDrawer.cs @@ -0,0 +1,7 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEditor; + +[CustomPropertyDrawer(typeof(TriggerAnimationDictionary))] +public class TriggerAnimationDicDrawer : SerializableDictionaryPropertyDrawer { } diff --git a/Assets/Scripts/Unit/Editor/TriggerAnimationDicDrawer.cs.meta b/Assets/Scripts/Unit/Editor/TriggerAnimationDicDrawer.cs.meta new file mode 100644 index 00000000..1b2fcd94 --- /dev/null +++ b/Assets/Scripts/Unit/Editor/TriggerAnimationDicDrawer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 548e21e5e705cc44597ccc005450a9e2 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Unit/UnitActionData.cs b/Assets/Scripts/Unit/UnitActionData.cs new file mode 100644 index 00000000..dab76696 --- /dev/null +++ b/Assets/Scripts/Unit/UnitActionData.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +[Serializable] +public class TriggerAnimationDictionary : SerializableDictionary { } + + +// 配置角色的动画 +[CreateAssetMenu(fileName = "Unit Action Data")] +public class UnitActionData : ScriptableObject +{ + public TriggerAnimationDictionary actions; + + +} diff --git a/Assets/Scripts/Unit/UnitActionData.cs.meta b/Assets/Scripts/Unit/UnitActionData.cs.meta new file mode 100644 index 00000000..ed3d6b70 --- /dev/null +++ b/Assets/Scripts/Unit/UnitActionData.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 34c4f0be042b58840bbd5f39068e5007 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Unit/UnitRootMotion.cs b/Assets/Scripts/Unit/UnitRootMotion.cs index 0d9d04a6..a2607700 100644 --- a/Assets/Scripts/Unit/UnitRootMotion.cs +++ b/Assets/Scripts/Unit/UnitRootMotion.cs @@ -15,4 +15,10 @@ public class UnitRootMotion : MonoBehaviour m_Animator = GetComponent(); } + public Vector3 UpdateRootMotion() + { + + return Vector3.zero; + } + } -- cgit v1.1-26-g67d0