From cf4e1f9833c810e18429ddf40f4bcf9052ff17ac Mon Sep 17 00:00:00 2001 From: chai Date: Sun, 29 Aug 2021 19:44:31 +0800 Subject: *monster --- Assets/Scripts/Test 1/TestErika.cs | 136 ++++++++++++++++++++++--------------- 1 file changed, 82 insertions(+), 54 deletions(-) (limited to 'Assets/Scripts/Test 1/TestErika.cs') diff --git a/Assets/Scripts/Test 1/TestErika.cs b/Assets/Scripts/Test 1/TestErika.cs index f6f9ba0e..967c3bdb 100644 --- a/Assets/Scripts/Test 1/TestErika.cs +++ b/Assets/Scripts/Test 1/TestErika.cs @@ -1,62 +1,90 @@ -using System.Collections; +using System; +using System.Collections; using System.Collections.Generic; using UnityEngine; +[Serializable] +public class UnitSetUp +{ + public UnitActionData actionData; // 动作配置 + + public GameObject unitControllerPrefab; + + public GameObject unitPrefab; + + public RuntimeAnimatorController animController; + + public string unitFolder; + + [HideInInspector] + public GameObject unit; + + [HideInInspector] + public GameObject unitController; +} + public class TestErika : MonoBehaviour { - public UnitActionData actionData; // 动作配置 - - public GameObject unitControllerPrefab; - - public GameObject unitPrefab; - - public RuntimeAnimatorController animController; - - public string unitFolder; - - [HideInInspector] - public GameObject unit; - - [HideInInspector] - public GameObject unitController; - - private void Awake() - { - unitController = GameObject.Instantiate(unitControllerPrefab); - unitController.transform.position = Vector3.zero; - unitController.transform.rotation = Quaternion.identity; - - unit = GameObject.Instantiate(unitPrefab); - unit.transform.rotation = Quaternion.Euler(0, 90, 0); - unit.transform.SetParent(unitController.transform); - - Init(); - - } - - private void Init() + public UnitSetUp erika; + public UnitSetUp monster; + + private void Awake() { - UnitController unitCtr = unitController.GetOrAddComponent(); - unitCtr.Initialize(unit, "Assets/Bundle/Unit/PC/Erika/"); - - UnitRootMotion unitRootMotion = unitCtr.unitRootMotion; - - RootMotionProxy rootMotionProxy = unit.GetOrAddComponent(); - - Animator animator = unit.GetComponent(); - AnimatorOverrideController animCtr = new AnimatorOverrideController(animController); - animCtr.name = unitPrefab.name + " Override Controller"; - animator.runtimeAnimatorController = animCtr; - - //foreach(var action in actionData.actions) - //{ - // animCtr[action.Key.ToString()] = action.Value; - //} - - unitCtr.unitState.ChangeState(UnitState.EUnitState.Idle, new UnitState.IdleParam(), true); - - //unitCtr.unitRootMotion.SetUpRootMotion(unitFolder, actionData); - - } + SetupErika(); + SetupMonster(); + } + + void SetupErika() + { + erika.unitController = GameObject.Instantiate(erika.unitControllerPrefab); + erika.unitController.transform.position = Vector3.zero; + erika.unitController.transform.rotation = Quaternion.identity; + + erika.unit = GameObject.Instantiate(erika.unitPrefab); + erika.unit.transform.rotation = Quaternion.Euler(0, 90, 0); + erika.unit.transform.SetParent(erika.unitController.transform); + + UnitController unitCtr = erika.unitController.GetOrAddComponent(); + unitCtr.Initialize(erika.unit, erika.unitFolder); + + UnitRootMotion unitRootMotion = unitCtr.unitRootMotion; + + RootMotionProxy rootMotionProxy = erika.unit.GetOrAddComponent(); + + Animator animator = erika.unit.GetComponent(); + AnimatorOverrideController animCtr = new AnimatorOverrideController(erika.animController); + animCtr.name = erika.unitPrefab.name + " Override Controller"; + animator.runtimeAnimatorController = animCtr; + + unitCtr.pcState.ChangeState(PCState.EUnitState.Idle, new PCState.IdleParam(), true); + } + + void SetupMonster() + { + monster.unitController = GameObject.Instantiate(monster.unitControllerPrefab); + monster.unitController.transform.position = Vector3.zero; + monster.unitController.transform.rotation = Quaternion.identity; + + monster.unit = GameObject.Instantiate(monster.unitPrefab); + monster.unit.transform.rotation = Quaternion.Euler(0, 90, 0); + monster.unit.transform.SetParent(monster.unitController.transform); + + UnitController unitCtr = monster.unitController.GetOrAddComponent(); + unitCtr.Initialize(monster.unit, monster.unitFolder); + + UnitRootMotion unitRootMotion = unitCtr.unitRootMotion; + + RootMotionProxy rootMotionProxy = monster.unit.GetOrAddComponent(); + + Animator animator = monster.unit.GetComponent(); + AnimatorOverrideController animCtr = new AnimatorOverrideController(monster.animController); + animCtr.name = monster.unitPrefab.name + " Override Controller"; + animator.runtimeAnimatorController = animCtr; + + unitCtr.monsterState.ChangeState(MonsterState.EUnitState.Idle, new MonsterState.IdleParam(), true); + + monster.unitController.transform.position = new Vector3(5, 0, 0); + monster.unitController.transform.rotation *= Quaternion.Euler(0, 180, 0); + } } -- cgit v1.1-26-g67d0