summaryrefslogtreecommitdiff
path: root/Assets/Scripts/Unit
diff options
context:
space:
mode:
authorchai <chaifix@163.com>2021-07-27 09:40:26 +0800
committerchai <chaifix@163.com>2021-07-27 09:40:26 +0800
commit8bbc03542340b4ea7ca1e2beec2f11ff335851e8 (patch)
tree15a4bdebe7b8d9448c476e0f67b94a5a50bc2ec5 /Assets/Scripts/Unit
parent4ceee84cd45e4e3ec40ebd888e41bd47a938c2d5 (diff)
*mic
Diffstat (limited to 'Assets/Scripts/Unit')
-rw-r--r--Assets/Scripts/Unit/Component/UnitAnimation.cs43
-rw-r--r--Assets/Scripts/Unit/Component/UnitRender.cs15
-rw-r--r--Assets/Scripts/Unit/Component/UnitState.cs2
-rw-r--r--Assets/Scripts/Unit/Controller/PCController.cs22
-rw-r--r--Assets/Scripts/Unit/Controller/UnitController.cs22
-rw-r--r--Assets/Scripts/Unit/Editor.meta8
-rw-r--r--Assets/Scripts/Unit/Editor/TriggerAnimationDicDrawer.cs7
-rw-r--r--Assets/Scripts/Unit/Editor/TriggerAnimationDicDrawer.cs.meta11
-rw-r--r--Assets/Scripts/Unit/UnitActionData.cs17
-rw-r--r--Assets/Scripts/Unit/UnitActionData.cs.meta11
-rw-r--r--Assets/Scripts/Unit/UnitRootMotion.cs6
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;
+ }
+
}