diff options
author | chai <chaifix@163.com> | 2021-07-27 09:40:26 +0800 |
---|---|---|
committer | chai <chaifix@163.com> | 2021-07-27 09:40:26 +0800 |
commit | 8bbc03542340b4ea7ca1e2beec2f11ff335851e8 (patch) | |
tree | 15a4bdebe7b8d9448c476e0f67b94a5a50bc2ec5 /Assets/Scripts/Unit | |
parent | 4ceee84cd45e4e3ec40ebd888e41bd47a938c2d5 (diff) |
*mic
Diffstat (limited to 'Assets/Scripts/Unit')
-rw-r--r-- | Assets/Scripts/Unit/Component/UnitAnimation.cs | 43 | ||||
-rw-r--r-- | Assets/Scripts/Unit/Component/UnitRender.cs | 15 | ||||
-rw-r--r-- | Assets/Scripts/Unit/Component/UnitState.cs | 2 | ||||
-rw-r--r-- | Assets/Scripts/Unit/Controller/PCController.cs | 22 | ||||
-rw-r--r-- | Assets/Scripts/Unit/Controller/UnitController.cs | 22 | ||||
-rw-r--r-- | Assets/Scripts/Unit/Editor.meta | 8 | ||||
-rw-r--r-- | Assets/Scripts/Unit/Editor/TriggerAnimationDicDrawer.cs | 7 | ||||
-rw-r--r-- | Assets/Scripts/Unit/Editor/TriggerAnimationDicDrawer.cs.meta | 11 | ||||
-rw-r--r-- | Assets/Scripts/Unit/UnitActionData.cs | 17 | ||||
-rw-r--r-- | Assets/Scripts/Unit/UnitActionData.cs.meta | 11 | ||||
-rw-r--r-- | Assets/Scripts/Unit/UnitRootMotion.cs | 6 |
11 files changed, 134 insertions, 30 deletions
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<TimelineEvent>();
+ m_Animator = this.m_Owner.unitObj.GetComponent<Animator>();
+
+ 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<UnitRender>();
-
+ unitObj = obj;
+
+ unitRender = gameObject.GetOrAddComponent<UnitRender>();
+ unitRender.Initialize();
+
+ unitState = gameObject.GetOrAddComponent<UnitState>();
+ unitState.Initialize();
+
+ unitAnimation = gameObject.GetOrAddComponent<UnitAnimation>();
+ unitAnimation.Initialize();
+
+ unitSkill = gameObject.GetOrAddComponent<UnitSkill>();
+ 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<UnitAnimation.ETrigger, AnimationClip> { } + + +// 配置角色的动画 +[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<Animator>();
}
+ public Vector3 UpdateRootMotion()
+ {
+
+ return Vector3.zero;
+ }
+
}
|