From dedc290469b05d95b379d564a0db891ec556eb1c Mon Sep 17 00:00:00 2001 From: MuHua-123 <136542559+MuHua-123@users.noreply.github.com> Date: Sat, 7 Jun 2025 16:10:24 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=AD=97=E7=AC=A6=E6=A8=A1?= =?UTF-8?q?=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ModuleAnalysis/AnalysisCollector.cs | 37 ------ .../ModuleCore/ModuleAnalysis/DataAnalysis.cs | 14 --- Assets/ModuleCore/ModuleAnalysis/DataStock.cs | 42 ------- .../ModuleAnalysis/ModuleAnalysis.cs | 16 --- .../ModuleAnalysis/ModuleTrading.cs | 11 -- .../ModuleAnalysis/ModuleTrading.cs.meta | 11 -- Assets/ModuleCore/ModuleCharacter.meta | 8 -- .../ModuleCharacter/AnimalMachine.meta | 8 -- .../AnimalMachine/AnimalChasingState.cs | 32 ----- .../AnimalMachine/AnimalChasingState.cs.meta | 11 -- .../AnimalMachine/AnimalEatingState.cs | 39 ------- .../AnimalMachine/AnimalEatingState.cs.meta | 11 -- .../AnimalMachine/AnimalFood.cs | 8 -- .../AnimalMachine/AnimalFood.cs.meta | 11 -- .../AnimalMachine/AnimalIdleState.cs | 30 ----- .../AnimalMachine/AnimalIdleState.cs.meta | 11 -- .../AnimalMachine/AnimalMachine.cs | 81 ------------- .../AnimalMachine/AnimalMachine.cs.meta | 11 -- .../AnimalMachine/AnimalRoamingState.cs | 30 ----- .../AnimalMachine/AnimalRoamingState.cs.meta | 11 -- .../ModuleCharacter/HumanoidMachine.meta | 8 -- Assets/ModuleTest.meta | 8 -- Assets/ModuleTest/TestUI.cs | 56 --------- Assets/ModuleTest/TestUI.cs.meta | 11 -- Assets/ModuleTest/TestUI.uxml | 12 -- Assets/ModuleTest/TestUI.uxml.meta | 10 -- Packages/Character/Runtime/Component.meta | 2 +- .../Runtime/Component/KinesisAnimator.cs | 46 -------- .../Runtime/Component/KinesisAnimator.cs.meta | 11 -- .../Runtime/Component/KinesisController.cs | 32 ----- .../Component/KinesisController.cs.meta | 11 -- .../Runtime/Component/KinesisMovement.cs | 100 ---------------- .../Runtime/Component/KinesisMovement.cs.meta | 11 -- .../Character/Runtime/Component/Movement.cs | 21 ++++ .../Runtime/Component/Movement.cs.meta | 2 +- .../Runtime/Component/MovementCollision.cs | 109 ++++++++++++++++++ .../Component/MovementCollision.cs.meta | 2 +- .../Runtime/Component/MovementStandard.cs | 101 ++++++++++++++++ .../Component/MovementStandard.cs.meta | 2 +- Packages/Character/Runtime/Interface.meta | 2 +- .../Character/Runtime/Interface/IKinesis.cs | 23 ++-- .../Runtime/Interface/IKinesis.cs.meta | 2 +- .../Character/Runtime/Kinesis.meta | 2 +- Packages/Character/Runtime/Kinesis/KIdle.cs | 26 +++++ .../Character/Runtime/Kinesis/KIdle.cs.meta | 2 +- Packages/Character/Runtime/Kinesis/KJump.cs | 102 ++++++++++++++++ .../Character/Runtime/Kinesis/KJump.cs.meta | 11 ++ Packages/Character/Runtime/Kinesis/KMove.cs | 73 ++++++++++++ .../Character/Runtime/Kinesis/KMove.cs.meta | 11 ++ Packages/Character/Runtime/MCharacter.cs | 27 +++++ Packages/Character/Runtime/MCharacter.cs.meta | 11 ++ .../Character/Runtime/MCharacterCollision.cs | 37 ++++++ .../Runtime/MCharacterCollision.cs.meta | 11 ++ .../Character/Runtime/MCharacterRigidbody.cs | 18 +++ .../Runtime/MCharacterRigidbody.cs.meta | 11 ++ .../Character/Runtime/MCharacterStandard.cs | 37 ++++++ .../Runtime/MCharacterStandard.cs.meta | 11 ++ Packages/Character/Runtime/Presets.meta | 8 -- .../Character/Runtime/Presets/KinesisIdle.cs | 20 ---- .../Runtime/Presets/KinesisIdle.cs.meta | 11 -- .../Character/Runtime/Presets/KinesisMove.cs | 61 ---------- .../Runtime/Presets/KinesisMove.cs.meta | 11 -- Packages/Character/package.json | 5 +- Packages/packages-lock.json | 4 +- 64 files changed, 636 insertions(+), 889 deletions(-) delete mode 100644 Assets/ModuleCore/ModuleAnalysis/AnalysisCollector.cs delete mode 100644 Assets/ModuleCore/ModuleAnalysis/DataAnalysis.cs delete mode 100644 Assets/ModuleCore/ModuleAnalysis/DataStock.cs delete mode 100644 Assets/ModuleCore/ModuleAnalysis/ModuleAnalysis.cs delete mode 100644 Assets/ModuleCore/ModuleAnalysis/ModuleTrading.cs delete mode 100644 Assets/ModuleCore/ModuleAnalysis/ModuleTrading.cs.meta delete mode 100644 Assets/ModuleCore/ModuleCharacter.meta delete mode 100644 Assets/ModuleCore/ModuleCharacter/AnimalMachine.meta delete mode 100644 Assets/ModuleCore/ModuleCharacter/AnimalMachine/AnimalChasingState.cs delete mode 100644 Assets/ModuleCore/ModuleCharacter/AnimalMachine/AnimalChasingState.cs.meta delete mode 100644 Assets/ModuleCore/ModuleCharacter/AnimalMachine/AnimalEatingState.cs delete mode 100644 Assets/ModuleCore/ModuleCharacter/AnimalMachine/AnimalEatingState.cs.meta delete mode 100644 Assets/ModuleCore/ModuleCharacter/AnimalMachine/AnimalFood.cs delete mode 100644 Assets/ModuleCore/ModuleCharacter/AnimalMachine/AnimalFood.cs.meta delete mode 100644 Assets/ModuleCore/ModuleCharacter/AnimalMachine/AnimalIdleState.cs delete mode 100644 Assets/ModuleCore/ModuleCharacter/AnimalMachine/AnimalIdleState.cs.meta delete mode 100644 Assets/ModuleCore/ModuleCharacter/AnimalMachine/AnimalMachine.cs delete mode 100644 Assets/ModuleCore/ModuleCharacter/AnimalMachine/AnimalMachine.cs.meta delete mode 100644 Assets/ModuleCore/ModuleCharacter/AnimalMachine/AnimalRoamingState.cs delete mode 100644 Assets/ModuleCore/ModuleCharacter/AnimalMachine/AnimalRoamingState.cs.meta delete mode 100644 Assets/ModuleCore/ModuleCharacter/HumanoidMachine.meta delete mode 100644 Assets/ModuleTest.meta delete mode 100644 Assets/ModuleTest/TestUI.cs delete mode 100644 Assets/ModuleTest/TestUI.cs.meta delete mode 100644 Assets/ModuleTest/TestUI.uxml delete mode 100644 Assets/ModuleTest/TestUI.uxml.meta delete mode 100644 Packages/Character/Runtime/Component/KinesisAnimator.cs delete mode 100644 Packages/Character/Runtime/Component/KinesisAnimator.cs.meta delete mode 100644 Packages/Character/Runtime/Component/KinesisController.cs delete mode 100644 Packages/Character/Runtime/Component/KinesisController.cs.meta delete mode 100644 Packages/Character/Runtime/Component/KinesisMovement.cs delete mode 100644 Packages/Character/Runtime/Component/KinesisMovement.cs.meta create mode 100644 Packages/Character/Runtime/Component/Movement.cs rename Assets/ModuleCore/ModuleAnalysis/ModuleAnalysis.cs.meta => Packages/Character/Runtime/Component/Movement.cs.meta (83%) create mode 100644 Packages/Character/Runtime/Component/MovementCollision.cs rename Assets/ModuleCore/ModuleAnalysis/DataAnalysis.cs.meta => Packages/Character/Runtime/Component/MovementCollision.cs.meta (83%) create mode 100644 Packages/Character/Runtime/Component/MovementStandard.cs rename Assets/ModuleCore/ModuleAnalysis/AnalysisCollector.cs.meta => Packages/Character/Runtime/Component/MovementStandard.cs.meta (83%) rename Assets/ModuleCore/ModuleAnalysis.meta => Packages/Character/Runtime/Kinesis.meta (77%) create mode 100644 Packages/Character/Runtime/Kinesis/KIdle.cs rename Assets/ModuleCore/ModuleAnalysis/DataStock.cs.meta => Packages/Character/Runtime/Kinesis/KIdle.cs.meta (83%) create mode 100644 Packages/Character/Runtime/Kinesis/KJump.cs create mode 100644 Packages/Character/Runtime/Kinesis/KJump.cs.meta create mode 100644 Packages/Character/Runtime/Kinesis/KMove.cs create mode 100644 Packages/Character/Runtime/Kinesis/KMove.cs.meta create mode 100644 Packages/Character/Runtime/MCharacter.cs create mode 100644 Packages/Character/Runtime/MCharacter.cs.meta create mode 100644 Packages/Character/Runtime/MCharacterCollision.cs create mode 100644 Packages/Character/Runtime/MCharacterCollision.cs.meta create mode 100644 Packages/Character/Runtime/MCharacterRigidbody.cs create mode 100644 Packages/Character/Runtime/MCharacterRigidbody.cs.meta create mode 100644 Packages/Character/Runtime/MCharacterStandard.cs create mode 100644 Packages/Character/Runtime/MCharacterStandard.cs.meta delete mode 100644 Packages/Character/Runtime/Presets.meta delete mode 100644 Packages/Character/Runtime/Presets/KinesisIdle.cs delete mode 100644 Packages/Character/Runtime/Presets/KinesisIdle.cs.meta delete mode 100644 Packages/Character/Runtime/Presets/KinesisMove.cs delete mode 100644 Packages/Character/Runtime/Presets/KinesisMove.cs.meta diff --git a/Assets/ModuleCore/ModuleAnalysis/AnalysisCollector.cs b/Assets/ModuleCore/ModuleAnalysis/AnalysisCollector.cs deleted file mode 100644 index 23ce4a8..0000000 --- a/Assets/ModuleCore/ModuleAnalysis/AnalysisCollector.cs +++ /dev/null @@ -1,37 +0,0 @@ -using System; -using System.Collections; -using System.Collections.Generic; -using UnityEngine; -using MuHua; - -/// -/// 数据采集 -/// -public class AnalysisCollector : Module { - /// 接口 :https://api.mairui.club/hszbl/fsjy/股票代码(如000001)/分时级别/licence证书 - public string API => "https://api.mairui.club/hszbl/fsjy/"; - - public void GetStock(string code, Action> action, bool isCache = true) { - string json = SaveTool.LoadText(FileName.Create(code)); - if (json != null && json != "" && isCache) { StockToAnalysis(json, action); return; } - - //https://api.mairui.club/hszbl/fsjy/000001/60m/b997d4403688d5e66a - string url = $"{API}{code}/dn/2E111385-7BF1-473D-9210-8E22AA75375A"; - Debug.Log($"{code}重新缓存了数据!"); - - DataRequestGet request = new DataRequestGet(url); - request.OnError = (json) => { Debug.Log(json); }; - request.OnCallback = (json) => { - SaveTool.SaveText(FileName.Create(code), json); - StockToAnalysis(json, action); - }; - request.SendAsync(); - } - - public void StockToAnalysis(string json, Action> action = null) { - List stocks = JsonTool.FromJson>(json); - List analyses = new List(); - for (int i = 0; i < stocks.Count; i++) { analyses.Add(stocks[i].To()); } - action?.Invoke(analyses); - } -} diff --git a/Assets/ModuleCore/ModuleAnalysis/DataAnalysis.cs b/Assets/ModuleCore/ModuleAnalysis/DataAnalysis.cs deleted file mode 100644 index 9a9060c..0000000 --- a/Assets/ModuleCore/ModuleAnalysis/DataAnalysis.cs +++ /dev/null @@ -1,14 +0,0 @@ -using System; -using System.Collections; -using System.Collections.Generic; -using UnityEngine; - -[Serializable] -public class DataAnalysis { - /// 日期 - public string dateTime; - /// 最高价(元) - public float max; - /// 最低价(元) - public float min; -} diff --git a/Assets/ModuleCore/ModuleAnalysis/DataStock.cs b/Assets/ModuleCore/ModuleAnalysis/DataStock.cs deleted file mode 100644 index 63d6072..0000000 --- a/Assets/ModuleCore/ModuleAnalysis/DataStock.cs +++ /dev/null @@ -1,42 +0,0 @@ -using System; -using System.Collections; -using System.Collections.Generic; -using System.Globalization; -using UnityEngine; - -[Serializable] -public class DataStock { - /// 日期 - public string d; - /// 开盘价(元) - public string o; - /// 最高价(元) - public string h; - /// 最低价(元) - public string l; - /// 收盘价(元) - public string c; - /// 成交量(手) - public string v; - /// 成交额(元) - public string e; - /// 振幅(%) - public string zf; - /// 换手率(%) - public string hs; - /// 涨跌幅(%) - public string zd; - /// 涨跌额(元) - public string zde; - /// - public string ud; - - public DataAnalysis To() { - DataAnalysis analysis = new DataAnalysis(); - //analysis.dateTime = DateTime.ParseExact(d, "yyyy-MM-dd", CultureInfo.CurrentCulture); - analysis.dateTime = d; - analysis.max = float.Parse(h); - analysis.min = float.Parse(l); - return analysis; - } -} \ No newline at end of file diff --git a/Assets/ModuleCore/ModuleAnalysis/ModuleAnalysis.cs b/Assets/ModuleCore/ModuleAnalysis/ModuleAnalysis.cs deleted file mode 100644 index 25df390..0000000 --- a/Assets/ModuleCore/ModuleAnalysis/ModuleAnalysis.cs +++ /dev/null @@ -1,16 +0,0 @@ -using System.Collections; -using System.Collections.Generic; -using UnityEngine; -using MuHua; - -/// -/// 分析模块 -/// -public class ModuleAnalysis : MonoBehaviour { - public List analyses; - private void Start() { - AnalysisCollector.I.GetStock("601658", (analyses) => { this.analyses = analyses; }); - - - } -} diff --git a/Assets/ModuleCore/ModuleAnalysis/ModuleTrading.cs b/Assets/ModuleCore/ModuleAnalysis/ModuleTrading.cs deleted file mode 100644 index fc23fec..0000000 --- a/Assets/ModuleCore/ModuleAnalysis/ModuleTrading.cs +++ /dev/null @@ -1,11 +0,0 @@ -using System.Collections; -using System.Collections.Generic; -using UnityEngine; - -/// -/// 交易模块 -/// -public abstract class ModuleTrading { - /// 执行交易 - public abstract void Execute(); -} diff --git a/Assets/ModuleCore/ModuleAnalysis/ModuleTrading.cs.meta b/Assets/ModuleCore/ModuleAnalysis/ModuleTrading.cs.meta deleted file mode 100644 index 28dd67f..0000000 --- a/Assets/ModuleCore/ModuleAnalysis/ModuleTrading.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 11336b15ef40f45488427630359ab3ba -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/ModuleCore/ModuleCharacter.meta b/Assets/ModuleCore/ModuleCharacter.meta deleted file mode 100644 index aa4ed20..0000000 --- a/Assets/ModuleCore/ModuleCharacter.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: ebb2815476f460d48b87b8d80a3c1faa -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/ModuleCore/ModuleCharacter/AnimalMachine.meta b/Assets/ModuleCore/ModuleCharacter/AnimalMachine.meta deleted file mode 100644 index fe2c6c5..0000000 --- a/Assets/ModuleCore/ModuleCharacter/AnimalMachine.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 4cbc8837586bb7248990d0581e20725f -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/ModuleCore/ModuleCharacter/AnimalMachine/AnimalChasingState.cs b/Assets/ModuleCore/ModuleCharacter/AnimalMachine/AnimalChasingState.cs deleted file mode 100644 index 003e54c..0000000 --- a/Assets/ModuleCore/ModuleCharacter/AnimalMachine/AnimalChasingState.cs +++ /dev/null @@ -1,32 +0,0 @@ -using System.Collections; -using System.Collections.Generic; -using UnityEngine; -using MuHua; - -// public class AnimalChasingState : IStateMachine where T : Component { -// public T target; -// public string ToDefault = "Eating"; -// public readonly AnimalMachine animal; -// public AnimalChasingState(StateMachine machine) : base(machine) => animal = machine as AnimalMachine; - -// public override void Enter() { -// bool valid = animal.Find(out target); -// if (!valid) { animal.ChangeState("Idle"); } -// } - -// public override void Exit() { -// animal.movement.StopMoving(); -// animal.animator.SetFloat("MoveSpeed", 0); -// } - -// public override void Trigger() { - -// } - -// public override void Update() { -// if (target == null) { animal.ChangeState(ToDefault); return; } -// bool complete = animal.movement.UpdateMove(target.transform.position); -// animal.animator.SetFloat("MoveSpeed", animal.movement.currentSpeed); -// if (complete) { animal.ChangeState(ToDefault); } -// } -// } diff --git a/Assets/ModuleCore/ModuleCharacter/AnimalMachine/AnimalChasingState.cs.meta b/Assets/ModuleCore/ModuleCharacter/AnimalMachine/AnimalChasingState.cs.meta deleted file mode 100644 index 356bd82..0000000 --- a/Assets/ModuleCore/ModuleCharacter/AnimalMachine/AnimalChasingState.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 246d20af4dd47a14b9151feca52b870d -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/ModuleCore/ModuleCharacter/AnimalMachine/AnimalEatingState.cs b/Assets/ModuleCore/ModuleCharacter/AnimalMachine/AnimalEatingState.cs deleted file mode 100644 index c8e58b7..0000000 --- a/Assets/ModuleCore/ModuleCharacter/AnimalMachine/AnimalEatingState.cs +++ /dev/null @@ -1,39 +0,0 @@ -using System.Collections; -using System.Collections.Generic; -using UnityEngine; -using MuHua; - -// public class AnimalEatingState : IStateMachine { -// public string ToDefault = "Idle"; - -// private AnimalFood target; - -// public AnimalMachine animal; -// public AnimalEatingState(StateMachine machine) : base(machine) => animal = machine as AnimalMachine; - -// public override void Enter() { -// if (!animal.Find(out target)) { Exit(); return; } - -// // 判断target距离是否小于0.3f -// float distance = Vector3.Distance(animal.transform.position, target.transform.position); -// if (distance >= 0.1f) { Exit(); return; } - -// animal.animator.SetBool("Eating", true); -// } - -// public override void Exit() { -// animal.animator.SetBool("Eating", false); -// } - -// public override void Trigger() { -// animal.hunger += target.nutritionValue; -// animal.hunger = Mathf.Clamp(animal.hunger, 0, animal.maxHunger); -// GameObject.Destroy(target.gameObject); - -// animal.ChangeState(ToDefault); -// } - -// public override void Update() { - -// } -// } diff --git a/Assets/ModuleCore/ModuleCharacter/AnimalMachine/AnimalEatingState.cs.meta b/Assets/ModuleCore/ModuleCharacter/AnimalMachine/AnimalEatingState.cs.meta deleted file mode 100644 index 8922e0e..0000000 --- a/Assets/ModuleCore/ModuleCharacter/AnimalMachine/AnimalEatingState.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 5d6c47e58145a2b44a20a3535cadc301 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/ModuleCore/ModuleCharacter/AnimalMachine/AnimalFood.cs b/Assets/ModuleCore/ModuleCharacter/AnimalMachine/AnimalFood.cs deleted file mode 100644 index e5410b9..0000000 --- a/Assets/ModuleCore/ModuleCharacter/AnimalMachine/AnimalFood.cs +++ /dev/null @@ -1,8 +0,0 @@ -using System.Collections; -using System.Collections.Generic; -using UnityEngine; - -public class AnimalFood : MonoBehaviour -{ - public float nutritionValue = 20.0f; // 饱食度增加值 -} diff --git a/Assets/ModuleCore/ModuleCharacter/AnimalMachine/AnimalFood.cs.meta b/Assets/ModuleCore/ModuleCharacter/AnimalMachine/AnimalFood.cs.meta deleted file mode 100644 index 401e554..0000000 --- a/Assets/ModuleCore/ModuleCharacter/AnimalMachine/AnimalFood.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: d83ffa2b763f0214298151e204ea0872 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/ModuleCore/ModuleCharacter/AnimalMachine/AnimalIdleState.cs b/Assets/ModuleCore/ModuleCharacter/AnimalMachine/AnimalIdleState.cs deleted file mode 100644 index 0524fb4..0000000 --- a/Assets/ModuleCore/ModuleCharacter/AnimalMachine/AnimalIdleState.cs +++ /dev/null @@ -1,30 +0,0 @@ -using System.Collections; -using System.Collections.Generic; -using UnityEngine; -using MuHua; - -// public class AnimalIdleState : IStateMachine { -// public string ToDefault = "Roaming"; - -// private float idleTime; - -// public AnimalMachine animal; -// public AnimalIdleState(StateMachine machine) : base(machine) => animal = machine as AnimalMachine; - -// public override void Enter() { -// idleTime = Random.Range(3.0f, 5.0f); -// } - -// public override void Exit() { - -// } - -// public override void Trigger() { - -// } - -// public override void Update() { -// idleTime -= Time.deltaTime; -// if (idleTime <= 0) { animal.ChangeState(ToDefault); } -// } -// } diff --git a/Assets/ModuleCore/ModuleCharacter/AnimalMachine/AnimalIdleState.cs.meta b/Assets/ModuleCore/ModuleCharacter/AnimalMachine/AnimalIdleState.cs.meta deleted file mode 100644 index f721abd..0000000 --- a/Assets/ModuleCore/ModuleCharacter/AnimalMachine/AnimalIdleState.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 8defd42d4b3f4a544bbeb381cb525533 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/ModuleCore/ModuleCharacter/AnimalMachine/AnimalMachine.cs b/Assets/ModuleCore/ModuleCharacter/AnimalMachine/AnimalMachine.cs deleted file mode 100644 index b89e198..0000000 --- a/Assets/ModuleCore/ModuleCharacter/AnimalMachine/AnimalMachine.cs +++ /dev/null @@ -1,81 +0,0 @@ -using System.Collections; -using System.Collections.Generic; -using UnityEngine; -using MuHua; - -// public class AnimalMachine : StateMachine { -// [Header("饥饿度参数")] -// public float hunger = 100.0f; // 饥饿度,从0到100 -// public float maxHunger = 100.0f; // 最大饥饿度 -// public float searchRadius = 10.0f; // 搜索食物的半径 - -// [Header("控制组件")] -// public Movement movement; // 运动控制器 -// public Animator animator; // 动画控制器 - -// private float hungerTimer = 0.0f; // 计时器 -// private float chasingCooldownTimer = 0.0f; // 追逐状态冷却计时器 -// private const float chasingCooldown = 5.0f; // 追逐状态冷却时间 - -// protected override void InitializeStates() { -// RegisterState("Idle", new AnimalIdleState(this)); -// RegisterState("Roaming", new AnimalRoamingState(this)); -// RegisterState("Chasing", new AnimalChasingState(this)); -// RegisterState("Eating", new AnimalEatingState(this)); - -// ChangeState("Idle"); -// } - -// protected override void Update() { -// base.Update(); - -// // 更新计时器 -// hungerTimer += Time.deltaTime; -// chasingCooldownTimer += Time.deltaTime; - -// if (hungerTimer >= 1.0f) { ConsumeHunger(); } -// } - -// public virtual void ConsumeHunger() { -// // 重置计时器 -// hungerTimer = 0.0f; -// // 每次消耗1点饥饿度 -// hunger -= 1.0f; -// if (hunger < 0.0f) { hunger = 0.0f; } - -// // 如果饥饿度低于最大饥饿度的70%,有50%的概率触发Chasing状态 -// // 如果饥饿度低于最大饥饿度的30%,有90%的概率触发Chasing状态 -// float foraging = hunger < maxHunger * 0.3f ? 0.9f : 0.5f; -// bool valid = hunger < maxHunger * 0.7f && Random.value < foraging; - -// // 如果触发Chasing状态,且冷却时间已过,切换到Chasing状态 -// if (valid && chasingCooldownTimer >= chasingCooldown) { -// ChangeState("Chasing"); -// chasingCooldownTimer = 0.0f; // 重置冷却计时器 -// } -// } - -// // 从指定范围内查找指定类型的组件 -// public virtual bool Find(out T value) where T : Component { -// Collider[] colliders = Physics.OverlapSphere(transform.position, searchRadius); -// foreach (Collider collider in colliders) { -// T component = collider.GetComponent(); -// if (component != null) { -// value = component; -// return true; -// } -// } -// value = null; -// return false; -// } - -// // public override bool UpdateMove(Vector3 position) { -// // return movement.UpdateMove(position); -// // } -// // public override void AnimationTrigger(string value) { -// // throw new System.NotImplementedException(); -// // } -// // public override void AnimationEnd() { -// // throw new System.NotImplementedException(); -// // } -// } diff --git a/Assets/ModuleCore/ModuleCharacter/AnimalMachine/AnimalMachine.cs.meta b/Assets/ModuleCore/ModuleCharacter/AnimalMachine/AnimalMachine.cs.meta deleted file mode 100644 index c4babbc..0000000 --- a/Assets/ModuleCore/ModuleCharacter/AnimalMachine/AnimalMachine.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: a513572e2996d4748acb2838b4cadc89 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/ModuleCore/ModuleCharacter/AnimalMachine/AnimalRoamingState.cs b/Assets/ModuleCore/ModuleCharacter/AnimalMachine/AnimalRoamingState.cs deleted file mode 100644 index 7e5c086..0000000 --- a/Assets/ModuleCore/ModuleCharacter/AnimalMachine/AnimalRoamingState.cs +++ /dev/null @@ -1,30 +0,0 @@ -using System.Collections; -using System.Collections.Generic; -using UnityEngine; -using MuHua; - -// public class AnimalRoamingState : IStateMachine { -// public Vector3 targetPosition; -// public string ToDefault = "Idle"; -// public readonly AnimalMachine animal; -// public AnimalRoamingState(StateMachine machine) : base(machine) => animal = machine as AnimalMachine; - -// public override void Enter() { -// targetPosition = animal.movement.RandomTargetPosition(); -// } - -// public override void Exit() { -// animal.movement.StopMoving(); -// animal.animator.SetFloat("MoveSpeed", 0); -// } - -// public override void Trigger() { - -// } - -// public override void Update() { -// bool complete = animal.movement.UpdateMove(targetPosition); -// animal.animator.SetFloat("MoveSpeed", animal.movement.currentSpeed); -// if (complete) { animal.ChangeState(ToDefault); } -// } -// } diff --git a/Assets/ModuleCore/ModuleCharacter/AnimalMachine/AnimalRoamingState.cs.meta b/Assets/ModuleCore/ModuleCharacter/AnimalMachine/AnimalRoamingState.cs.meta deleted file mode 100644 index d99d063..0000000 --- a/Assets/ModuleCore/ModuleCharacter/AnimalMachine/AnimalRoamingState.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 494833b7d85b90743956831570b1c49e -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/ModuleCore/ModuleCharacter/HumanoidMachine.meta b/Assets/ModuleCore/ModuleCharacter/HumanoidMachine.meta deleted file mode 100644 index 65a1fc8..0000000 --- a/Assets/ModuleCore/ModuleCharacter/HumanoidMachine.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: fc54f6ddf4030054f974974bf79889d6 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/ModuleTest.meta b/Assets/ModuleTest.meta deleted file mode 100644 index edff7c8..0000000 --- a/Assets/ModuleTest.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 56476dea62b51fc41b2a53b9bdfaa56f -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/ModuleTest/TestUI.cs b/Assets/ModuleTest/TestUI.cs deleted file mode 100644 index 5d92b3c..0000000 --- a/Assets/ModuleTest/TestUI.cs +++ /dev/null @@ -1,56 +0,0 @@ -using System.Collections; -using System.Collections.Generic; -using UnityEngine; -using UnityEngine.UIElements; -using MuHua; - -public class TestUI : MonoBehaviour { - /// 绑定文档 - public UIDocument document; - /// 根目录文档 - public VisualElement root => document.rootVisualElement; - - private UIScrollView scrollView; - private UIScrollView scrollViewHorizontal; - private UIScrollView scrollViewVertical; - - private UISlider slider1; - private UISlider slider2; - private UISlider slider3; - private UISlider slider4; - - private void Awake() { - VisualElement ScrollView = root.Q("ScrollView"); - scrollView = new UIScrollView(ScrollView, root, UIDirection.HorizontalAndVertical); - - VisualElement ScrollViewHorizontal = root.Q("ScrollViewHorizontal"); - scrollViewHorizontal = new UIScrollView(ScrollViewHorizontal, root, UIDirection.Horizontal); - - VisualElement ScrollViewVertical = root.Q("ScrollViewVertical"); - scrollViewVertical = new UIScrollView(ScrollViewVertical, root, UIDirection.Vertical); - - VisualElement Slider1 = root.Q("SliderHorizontal1"); - slider1 = new UISlider(Slider1, root, UIDirection.FromLeftToRight); - - VisualElement Slider2 = root.Q("SliderHorizontal2"); - slider2 = new UISlider(Slider2, root, UIDirection.FromRightToLeft); - - VisualElement Slider3 = root.Q("SliderVertical1"); - slider3 = new UISlider(Slider3, root, UIDirection.FromTopToBottom); - - VisualElement Slider4 = root.Q("SliderVertical2"); - slider4 = new UISlider(Slider4, root, UIDirection.FromBottomToTop); - - slider4.ValueChanged += (obj) => { Debug.Log(obj); }; - } - private void Update() { - scrollView.Update(); - scrollViewHorizontal.Update(); - scrollViewVertical.Update(); - - slider1.Update(); - slider2.Update(); - slider3.Update(); - slider4.Update(); - } -} diff --git a/Assets/ModuleTest/TestUI.cs.meta b/Assets/ModuleTest/TestUI.cs.meta deleted file mode 100644 index 31d57a7..0000000 --- a/Assets/ModuleTest/TestUI.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 48270532e0731284a92ff8556d892c7e -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/ModuleTest/TestUI.uxml b/Assets/ModuleTest/TestUI.uxml deleted file mode 100644 index e91b0bb..0000000 --- a/Assets/ModuleTest/TestUI.uxml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - diff --git a/Assets/ModuleTest/TestUI.uxml.meta b/Assets/ModuleTest/TestUI.uxml.meta deleted file mode 100644 index 60d3e01..0000000 --- a/Assets/ModuleTest/TestUI.uxml.meta +++ /dev/null @@ -1,10 +0,0 @@ -fileFormatVersion: 2 -guid: 337d91fd31b0b764f97868cdacc90f66 -ScriptedImporter: - internalIDToNameTable: [] - externalObjects: {} - serializedVersion: 2 - userData: - assetBundleName: - assetBundleVariant: - script: {fileID: 13804, guid: 0000000000000000e000000000000000, type: 0} diff --git a/Packages/Character/Runtime/Component.meta b/Packages/Character/Runtime/Component.meta index 8d9bc2f..96b7ba6 100644 --- a/Packages/Character/Runtime/Component.meta +++ b/Packages/Character/Runtime/Component.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 6636b9d6db0317e43a61b41ac2b2297d +guid: 5714b692b8275aa4cb37f8f22344174e folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Packages/Character/Runtime/Component/KinesisAnimator.cs b/Packages/Character/Runtime/Component/KinesisAnimator.cs deleted file mode 100644 index 3c33110..0000000 --- a/Packages/Character/Runtime/Component/KinesisAnimator.cs +++ /dev/null @@ -1,46 +0,0 @@ -using System.Collections; -using System.Collections.Generic; -using UnityEngine; - -namespace MuHua { - /// - /// 动作动画控制器 - /// - [RequireComponent(typeof(Animator))] - public class KinesisAnimator : MonoBehaviour { - protected int layerIndex; - protected string current; - protected Animator animator; - protected IKinesis kinesis; - - public virtual void Awake() => animator = GetComponent(); - - /// 设置动作 - public virtual void SetKinesis(IKinesis kinesis) => this.kinesis = kinesis; - /// 动画过渡 - public virtual void Transition(int layerIndex, string name, float normalizedTransitionDuration = 0.1f) { - animator.SetLayerWeight(this.layerIndex, 0); - animator.SetLayerWeight(layerIndex, 1); - this.layerIndex = layerIndex; - Transition(name, normalizedTransitionDuration); - } - /// 动画过渡 - public virtual void Transition(string name, float normalizedTransitionDuration = 0.1f) { - if (current == name) { animator.Play(name); } - else { animator.CrossFade(name, normalizedTransitionDuration); } - current = name; - } - - /// 设置参数 - public virtual void SetBool(string name, bool value) => animator.SetBool(name, value); - /// 设置参数 - public virtual void SetFloat(string name, float value) => animator.SetFloat(name, value); - - /// 触发动画特效 - public virtual void AnimationEffects() => kinesis?.AnimationEffects(); - /// 动画结束(有后摇) - public virtual void AnimationEnd() => kinesis?.AnimationEnd(); - /// 动画退出(无后摇) - public virtual void AnimationExit() => kinesis?.AnimationExit(); - } -} diff --git a/Packages/Character/Runtime/Component/KinesisAnimator.cs.meta b/Packages/Character/Runtime/Component/KinesisAnimator.cs.meta deleted file mode 100644 index 45f3a31..0000000 --- a/Packages/Character/Runtime/Component/KinesisAnimator.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: e3ceef7224b9b094aadaa9b3a0238648 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Packages/Character/Runtime/Component/KinesisController.cs b/Packages/Character/Runtime/Component/KinesisController.cs deleted file mode 100644 index 6c60d99..0000000 --- a/Packages/Character/Runtime/Component/KinesisController.cs +++ /dev/null @@ -1,32 +0,0 @@ -using System.Collections; -using System.Collections.Generic; -using UnityEngine; - -namespace MuHua { - /// - /// 动作控制器 - /// - public class KinesisController : MonoBehaviour { - public KinesisAnimator animator; - public KinesisMovement movement; - - private IKinesis currentKinesis; - - public virtual void Awake() => TransitionKinesis(new KinesisIdle()); - - public virtual void Update() => currentKinesis?.UpdateKinesis(); - - /// 动作过渡 - public virtual void TransitionKinesis(IKinesis kinesis) { - //不可以转换 - if (currentKinesis != null && !currentKinesis.Transition(kinesis)) { return; } - //进行转换 - currentKinesis?.FinishKinesis(); - currentKinesis = kinesis; - currentKinesis?.StartKinesis(); - - animator?.SetKinesis(currentKinesis); - movement?.SetKinesis(currentKinesis); - } - } -} \ No newline at end of file diff --git a/Packages/Character/Runtime/Component/KinesisController.cs.meta b/Packages/Character/Runtime/Component/KinesisController.cs.meta deleted file mode 100644 index e438c20..0000000 --- a/Packages/Character/Runtime/Component/KinesisController.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 2c1979e13b26c7b48a7a4690da154535 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Packages/Character/Runtime/Component/KinesisMovement.cs b/Packages/Character/Runtime/Component/KinesisMovement.cs deleted file mode 100644 index be0bda5..0000000 --- a/Packages/Character/Runtime/Component/KinesisMovement.cs +++ /dev/null @@ -1,100 +0,0 @@ -using System.Collections; -using System.Collections.Generic; -using UnityEngine; - -namespace MuHua { - /// - /// 动作运动控制器 - /// - [RequireComponent(typeof(CharacterController))] - public class KinesisMovement : MonoBehaviour { - public float moveSpeed = 5;// 移动速度 - public float acceleration = 10.0f;// 加速度 - [Range(0.0f, 0.3f)] - public float rotationSmoothTime = 0.12f;// 旋转平滑 - - protected float currentSpeed;// 当前速度 - protected Vector2 moveDirection;// 移动方向 - protected float animationBlend;// 动画混合速度 - protected float targetRotation = 0.0f;// 旋转目标 - protected float rotationVelocity;// 旋转速度 - protected float verticalVelocity;// 垂直速度 - protected IKinesis kinesis;// 当前动作 - protected KinesisAnimator animator;// 动作动画控制器 - protected CharacterController controller;// 角色控制器 - - public virtual bool IsStop => currentSpeed == 0; - - public virtual void Awake() { - animator = GetComponent(); - controller = GetComponent(); - } - public virtual void Update() { - PlanarMovement(); - } - - /// 设置动作 - public virtual void SetKinesis(IKinesis kinesis) => this.kinesis = kinesis; - /// 设置方向 - public virtual void SetDirection(Vector2 moveDirection) => this.moveDirection = moveDirection; - /// 停止移动 - public virtual void StopMovement() { - currentSpeed = 0; - moveDirection = Vector2.zero; - animationBlend = 0; - animator?.SetFloat("MoveSpeed", animationBlend); - } - - /// 平面移动 - public virtual void PlanarMovement() { - // 设定目标速度 - float targetSpeed = moveSpeed; - - // 一种简单的加速和减速设计,易于拆卸、更换或迭代 - - // 如果没有输入,将目标速度设置为0 - if (moveDirection == Vector2.zero && currentSpeed == 0) { return; } - if (moveDirection == Vector2.zero) targetSpeed = 0.0f; - - // 当前水平速度的参考 - // float currentHorizontalSpeed = new Vector3(controller.velocity.x, 0.0f, controller.velocity.z).magnitude; - - // float speedOffset = 0.1f; - - // 加速或减速至目标速度 - // if (currentHorizontalSpeed < targetSpeed - speedOffset || currentHorizontalSpeed > targetSpeed + speedOffset) { - // 产生弯曲的结果,而不是线性的结果,从而产生更有机的速度变化 - // 注意Lerp中的T是夹紧的,所以我们不需要夹紧我们的速度 - currentSpeed = Mathf.Lerp(currentSpeed, targetSpeed, Time.deltaTime * acceleration); - - // round speed to 3 decimal places - currentSpeed = Mathf.Round(currentSpeed * 1000f) / 1000f; - // } - // else { currentSpeed = targetSpeed; } - - animationBlend = Mathf.Lerp(animationBlend, targetSpeed, Time.deltaTime * acceleration); - if (animationBlend < 0.01f) animationBlend = 0f; - - // 使输入方向标准化 - Vector3 inputDirection = new Vector3(moveDirection.x, 0.0f, moveDirection.y).normalized; - - // 如果有移动输入,则在玩家移动时旋转玩家 - if (moveDirection != Vector2.zero) { - targetRotation = Mathf.Atan2(inputDirection.x, inputDirection.z) * Mathf.Rad2Deg; - float rotation = Mathf.SmoothDampAngle(transform.eulerAngles.y, targetRotation, ref rotationVelocity, rotationSmoothTime); - - // 相对于相机位置旋转到面向输入方向 - transform.rotation = Quaternion.Euler(0.0f, rotation, 0.0f); - } - - - Vector3 targetDirection = Quaternion.Euler(0.0f, targetRotation, 0.0f) * Vector3.forward; - - // 移动 - controller.Move(targetDirection.normalized * (currentSpeed * Time.deltaTime) + new Vector3(0.0f, verticalVelocity, 0.0f) * Time.deltaTime); - - // 如果使用角色,请更新动画师 - animator?.SetFloat("MoveSpeed", animationBlend); - } - } -} diff --git a/Packages/Character/Runtime/Component/KinesisMovement.cs.meta b/Packages/Character/Runtime/Component/KinesisMovement.cs.meta deleted file mode 100644 index ed8a330..0000000 --- a/Packages/Character/Runtime/Component/KinesisMovement.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 61ef13b926e462442920d0ba932e8e27 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Packages/Character/Runtime/Component/Movement.cs b/Packages/Character/Runtime/Component/Movement.cs new file mode 100644 index 0000000..416db7a --- /dev/null +++ b/Packages/Character/Runtime/Component/Movement.cs @@ -0,0 +1,21 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +namespace MuHua { + /// + /// 运动器 + /// + public abstract class Movement { + /// 当前速度 + public abstract float Speed { get; } + /// 是否接地 + public abstract bool Grounded { get; } + /// 移动 + public abstract void Move(Vector2 moveDirection, float moveSpeed, float acceleration, bool isRotation); + /// 跳跃 + public abstract void Jump(float jumpHeight); + /// 更新 + public abstract void Update(); + } +} diff --git a/Assets/ModuleCore/ModuleAnalysis/ModuleAnalysis.cs.meta b/Packages/Character/Runtime/Component/Movement.cs.meta similarity index 83% rename from Assets/ModuleCore/ModuleAnalysis/ModuleAnalysis.cs.meta rename to Packages/Character/Runtime/Component/Movement.cs.meta index 633dd5c..aa07dc5 100644 --- a/Assets/ModuleCore/ModuleAnalysis/ModuleAnalysis.cs.meta +++ b/Packages/Character/Runtime/Component/Movement.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 690f28715cec9bc41a56277db51f79fc +guid: c48241a855a542e41b23b017edcab454 MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/Packages/Character/Runtime/Component/MovementCollision.cs b/Packages/Character/Runtime/Component/MovementCollision.cs new file mode 100644 index 0000000..936040c --- /dev/null +++ b/Packages/Character/Runtime/Component/MovementCollision.cs @@ -0,0 +1,109 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +namespace MuHua { + /// + /// 碰撞 - 运动器 + /// + public class MovementCollision : Movement { + /// 地面图层 + public readonly LayerMask groundLayers; + /// 角色控制器 + public readonly CharacterController controller; + + public float moveSpeed;// 移动速度 + public float currentSpeed;// 当前速度 + public float acceleration;// 加速度 + public float animationBlend;// 动画混合速度 + public Vector2 moveDirection;// 移动方向 + + public bool isRotation;// 是否旋转 + public float targetRotation;// 目标旋转 + public float rotationVelocity;// 旋转速度 + public float rotationSmoothTime = 0.12f;// 旋转平滑 Range(0.0f, 0.3f) + + public bool grounded = true;// 是否接地 + public float verticalVelocity;// 垂直速度 + public float groundedRadius = 0.14f;// 地面检测半径 + + /// 垂直重力 + public float Gravity => Physics.gravity.y; + + public override float Speed => currentSpeed; + + public override bool Grounded => grounded; + + public MovementCollision(CharacterController controller, LayerMask groundLayers) { + this.controller = controller; + this.groundLayers = groundLayers; + } + + /// 移动 + public override void Move(Vector2 moveDirection, float moveSpeed, float acceleration, bool isRotation) { + this.moveSpeed = moveSpeed; + this.acceleration = acceleration; + this.moveDirection = moveDirection; + this.isRotation = isRotation; + } + /// H*-2*G的平方根=达到所需高度所需的速度 + public override void Jump(float jumpHeight) { + verticalVelocity = Mathf.Sqrt(jumpHeight * -2f * Gravity); + } + /// 更新 + public override void Update() { + // 如果没有输入,将目标速度设置为0 + if (moveDirection == Vector2.zero) moveSpeed = 0.0f; + + // 当前速度 + currentSpeed = Mathf.Lerp(currentSpeed, moveSpeed, Time.deltaTime * acceleration); + + // 四舍五入到小数点后3位 + currentSpeed = Mathf.Round(currentSpeed * 1000f) / 1000f; + + animationBlend = Mathf.Lerp(animationBlend, moveSpeed, Time.deltaTime * acceleration); + if (animationBlend < 0.01f) animationBlend = 0f; + + // 使输入方向标准化 + Vector3 inputDirection = new Vector3(moveDirection.x, 0.0f, moveDirection.y).normalized; + + if (isRotation) { + // 如果有移动输入,则在玩家移动时旋转玩家 + if (moveDirection != Vector2.zero) { + targetRotation = Mathf.Atan2(inputDirection.x, inputDirection.z) * Mathf.Rad2Deg; + float rotation = Mathf.SmoothDampAngle(controller.transform.eulerAngles.y, targetRotation, ref rotationVelocity, rotationSmoothTime); + + // 相对于相机位置旋转到面向输入方向 + controller.transform.rotation = Quaternion.Euler(0.0f, rotation, 0.0f); + } + + // 移动 + Vector3 targetDirection = Quaternion.Euler(0.0f, targetRotation, 0.0f) * Vector3.forward; + Vector3 horizontal = targetDirection.normalized * (currentSpeed * Time.deltaTime); + Vector3 vertical = new Vector3(0.0f, verticalVelocity, 0.0f) * Time.deltaTime; + controller.Move(horizontal + vertical); + } + else { + // 移动 + Vector3 horizontal = inputDirection * (currentSpeed * Time.deltaTime); + Vector3 vertical = new Vector3(0.0f, verticalVelocity, 0.0f) * Time.deltaTime; + controller.Move(horizontal + vertical); + } + + // 地面检测 + Vector3 position = controller.transform.position; + Vector3 rayOrigin = new Vector3(position.x, position.y + groundedRadius, position.z); + // 射线长度稍微大于检测半径 + float rayLength = groundedRadius * 2 + 0.1f; + // 使用射线检测地面 + grounded = Physics.Raycast(rayOrigin, Vector3.down, rayLength, groundLayers, QueryTriggerInteraction.Ignore); + // 可选:调试显示射线 + Debug.DrawRay(rayOrigin, Vector3.down * rayLength, grounded ? Color.green : Color.red); + + // 引力 + verticalVelocity += Gravity * Time.deltaTime; + // 站在地面上时,限制最大下落速度 + if (grounded && verticalVelocity < 0.0f) { verticalVelocity = -2f; } + } + } +} \ No newline at end of file diff --git a/Assets/ModuleCore/ModuleAnalysis/DataAnalysis.cs.meta b/Packages/Character/Runtime/Component/MovementCollision.cs.meta similarity index 83% rename from Assets/ModuleCore/ModuleAnalysis/DataAnalysis.cs.meta rename to Packages/Character/Runtime/Component/MovementCollision.cs.meta index 09b9a0d..7b2de4a 100644 --- a/Assets/ModuleCore/ModuleAnalysis/DataAnalysis.cs.meta +++ b/Packages/Character/Runtime/Component/MovementCollision.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: b4b97a8a3401e2a42903697e2b5acb2f +guid: 06f3697338f20ac459ed126fc05a9694 MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/Packages/Character/Runtime/Component/MovementStandard.cs b/Packages/Character/Runtime/Component/MovementStandard.cs new file mode 100644 index 0000000..ff18947 --- /dev/null +++ b/Packages/Character/Runtime/Component/MovementStandard.cs @@ -0,0 +1,101 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +namespace MuHua { + /// + /// 标准 - 运动器 + /// + public class MovementStandard : Movement { + /// 地面图层 + public readonly LayerMask groundLayers; + /// 变换 + public readonly Transform transform; + + public float moveSpeed;// 移动速度 + public float currentSpeed;// 当前速度 + public float acceleration;// 加速度 + public float animationBlend;// 动画混合速度 + public Vector2 moveDirection;// 移动方向 + + public bool isRotation;// 是否旋转 + public float targetRotation;// 目标旋转 + public float rotationVelocity;// 旋转速度 + public float rotationSmoothTime = 0.12f;// 旋转平滑 Range(0.0f, 0.3f) + + public bool grounded = true;// 是否接地 + public float verticalVelocity;// 垂直速度 + public float groundedRadius = 0.14f;// 地面检测半径 + + /// 垂直重力 + public float Gravity => Physics.gravity.y; + + public override float Speed => currentSpeed; + + public override bool Grounded => grounded; + + public MovementStandard(Transform transform, LayerMask groundLayers) { + this.transform = transform; + this.groundLayers = groundLayers; + } + + /// 移动 + public override void Move(Vector2 moveDirection, float moveSpeed, float acceleration, bool isRotation) { + this.moveSpeed = moveSpeed; + this.acceleration = acceleration; + this.moveDirection = moveDirection; + this.isRotation = isRotation; + } + /// 跳跃 + public override void Jump(float jumpHeight) { + verticalVelocity = Mathf.Sqrt(jumpHeight * -2f * Gravity); + } + /// 更新 + public override void Update() { + // 如果没有输入,将目标速度设置为0 + if (moveDirection == Vector2.zero) moveSpeed = 0.0f; + + // 当前速度 + currentSpeed = Mathf.Lerp(currentSpeed, moveSpeed, Time.deltaTime * acceleration); + + // 四舍五入到小数点后3位 + currentSpeed = Mathf.Round(currentSpeed * 1000f) / 1000f; + + animationBlend = Mathf.Lerp(animationBlend, moveSpeed, Time.deltaTime * acceleration); + if (animationBlend < 0.01f) animationBlend = 0f; + + // 使输入方向标准化 + Vector3 inputDirection = new Vector3(moveDirection.x, 0.0f, moveDirection.y).normalized; + + // 如果有移动输入,则在玩家移动时旋转玩家 + if (moveDirection != Vector2.zero && isRotation) { + targetRotation = Mathf.Atan2(inputDirection.x, inputDirection.z) * Mathf.Rad2Deg; + float rotation = Mathf.SmoothDampAngle(transform.eulerAngles.y, targetRotation, ref rotationVelocity, rotationSmoothTime); + + // 相对于相机位置旋转到面向输入方向 + transform.rotation = Quaternion.Euler(0.0f, rotation, 0.0f); + } + + // 移动 + Vector3 targetDirection = Quaternion.Euler(0.0f, targetRotation, 0.0f) * Vector3.forward; + Vector3 horizontal = targetDirection.normalized * (currentSpeed * Time.deltaTime); + Vector3 vertical = new Vector3(0.0f, verticalVelocity, 0.0f) * Time.deltaTime; + transform.position += horizontal + vertical; + + // 地面检测 + Vector3 position = transform.position; + Vector3 rayOrigin = new Vector3(position.x, position.y + groundedRadius, position.z); + // 射线长度稍微大于检测半径 + float rayLength = groundedRadius * 2 + 0.1f; + // 使用射线检测地面 + grounded = Physics.Raycast(rayOrigin, Vector3.down, rayLength, groundLayers, QueryTriggerInteraction.Ignore); + // 可选:调试显示射线 + Debug.DrawRay(rayOrigin, Vector3.down * rayLength, grounded ? Color.green : Color.red); + + // 引力 + verticalVelocity += Gravity * Time.deltaTime; + // 站在地面上时,限制最大下落速度 + if (grounded && verticalVelocity < 0.0f) { verticalVelocity = -2f; } + } + } +} \ No newline at end of file diff --git a/Assets/ModuleCore/ModuleAnalysis/AnalysisCollector.cs.meta b/Packages/Character/Runtime/Component/MovementStandard.cs.meta similarity index 83% rename from Assets/ModuleCore/ModuleAnalysis/AnalysisCollector.cs.meta rename to Packages/Character/Runtime/Component/MovementStandard.cs.meta index 8ec73eb..d18f435 100644 --- a/Assets/ModuleCore/ModuleAnalysis/AnalysisCollector.cs.meta +++ b/Packages/Character/Runtime/Component/MovementStandard.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 06f3d6e55c2a1584ba20c9262c06704d +guid: cf671b0b45929dc4c970eadb97df3ec8 MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/Packages/Character/Runtime/Interface.meta b/Packages/Character/Runtime/Interface.meta index 784b45d..eb75fa7 100644 --- a/Packages/Character/Runtime/Interface.meta +++ b/Packages/Character/Runtime/Interface.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: a373c751fa5625249af75654ab69aec4 +guid: 197992f6020004c44a74153f43c5f7d1 folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Packages/Character/Runtime/Interface/IKinesis.cs b/Packages/Character/Runtime/Interface/IKinesis.cs index cf508c5..75d521a 100644 --- a/Packages/Character/Runtime/Interface/IKinesis.cs +++ b/Packages/Character/Runtime/Interface/IKinesis.cs @@ -4,23 +4,18 @@ using UnityEngine; namespace MuHua { /// - /// 角色动作 + /// 运动 /// - public interface IKinesis { + public abstract class IKinesis { /// 动作过渡 - public bool Transition(IKinesis kinesis); + public abstract bool Transition(IKinesis kinesis); /// 开始动作 - public void StartKinesis(); + public abstract void StartKinesis(); /// 更新动作 - public void UpdateKinesis(); + public abstract void UpdateKinesis(); /// 完成动作 - public void FinishKinesis(); - - /// 触发动画特效 - public void AnimationEffects(); - /// 动画结束(有后摇) - public void AnimationEnd(); - /// 动画退出(无后摇) - public void AnimationExit(); + public abstract void FinishKinesis(); + /// 动画结束 + public abstract void AnimationExit(); } -} +} \ No newline at end of file diff --git a/Packages/Character/Runtime/Interface/IKinesis.cs.meta b/Packages/Character/Runtime/Interface/IKinesis.cs.meta index 923f771..4f48410 100644 --- a/Packages/Character/Runtime/Interface/IKinesis.cs.meta +++ b/Packages/Character/Runtime/Interface/IKinesis.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: e096ab8673cda9e42be867d97aae83eb +guid: 1490d224da1fe674cb366599e7603d66 MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/Assets/ModuleCore/ModuleAnalysis.meta b/Packages/Character/Runtime/Kinesis.meta similarity index 77% rename from Assets/ModuleCore/ModuleAnalysis.meta rename to Packages/Character/Runtime/Kinesis.meta index 1b15646..eb37d7c 100644 --- a/Assets/ModuleCore/ModuleAnalysis.meta +++ b/Packages/Character/Runtime/Kinesis.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: bae5611456f58c64eaa6b106bc0b75cc +guid: 338d1e647d487fe43aee258fbf63dfd4 folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Packages/Character/Runtime/Kinesis/KIdle.cs b/Packages/Character/Runtime/Kinesis/KIdle.cs new file mode 100644 index 0000000..b8882f4 --- /dev/null +++ b/Packages/Character/Runtime/Kinesis/KIdle.cs @@ -0,0 +1,26 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +namespace MuHua { + /// + /// 空闲 - 运动 + /// + public class KIdle : IKinesis { + public override bool Transition(IKinesis kinesis) { + return true; + } + public override void StartKinesis() { + // throw new System.NotImplementedException(); + } + public override void UpdateKinesis() { + // throw new System.NotImplementedException(); + } + public override void FinishKinesis() { + // throw new System.NotImplementedException(); + } + public override void AnimationExit() { + // throw new System.NotImplementedException(); + } + } +} diff --git a/Assets/ModuleCore/ModuleAnalysis/DataStock.cs.meta b/Packages/Character/Runtime/Kinesis/KIdle.cs.meta similarity index 83% rename from Assets/ModuleCore/ModuleAnalysis/DataStock.cs.meta rename to Packages/Character/Runtime/Kinesis/KIdle.cs.meta index 28b9c5f..d977540 100644 --- a/Assets/ModuleCore/ModuleAnalysis/DataStock.cs.meta +++ b/Packages/Character/Runtime/Kinesis/KIdle.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 4965f5d3a8eb6ef4ca7837688badb4e6 +guid: 29150243edc07d0429fea37464e830a7 MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/Packages/Character/Runtime/Kinesis/KJump.cs b/Packages/Character/Runtime/Kinesis/KJump.cs new file mode 100644 index 0000000..fd37fd5 --- /dev/null +++ b/Packages/Character/Runtime/Kinesis/KJump.cs @@ -0,0 +1,102 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +namespace MuHua { + /// + /// 跳跃 - 运动 + /// + public class KJump : IKinesis { + /// 基础角色 + public readonly MCharacter character; + + /// 结束跳跃 + public bool isEndJump; + /// 是否接地 + public bool isGrounded; + /// 允许转换 + public bool isTransition; + /// 跳跃高度 + public float jumpHeight; + /// 衰退速度 + public float decaySpeed; + /// 移动速度 + public float moveSpeed = 2; + /// 加速度 + public float acceleration = 15; + /// 移动方向 + public Vector2 moveDirection; + /// 初始位置 + public Vector3 position; + /// 初始角度 + public Vector3 eulerAngles; + /// 是否旋转 + public bool isRotation; + /// 初始设置 + public bool isInitial = false; + + /// 变换器 + public Transform transform => character.transform; + /// 动画器 + public Animator animator => character.animator; + /// 运动器 + public Movement movement => character.movement; + + public KJump(MCharacter character, Vector2 moveDirection, float jumpHeight, bool isRotation) { + this.character = character; + this.moveDirection = moveDirection; + this.jumpHeight = jumpHeight; + } + + public void Settings(float moveSpeed, float acceleration) { + this.moveSpeed = moveSpeed; + this.acceleration = acceleration; + } + public void Settings(Vector3 position, Vector3 eulerAngles) { + this.position = position; + this.eulerAngles = eulerAngles; + isInitial = true; + } + + public override bool Transition(IKinesis kinesis) { + return isTransition; + } + public override void StartKinesis() { + if (isInitial) { + character.transform.position = position; + character.transform.eulerAngles = eulerAngles; + } + isEndJump = false; + isTransition = false; + isGrounded = movement.Grounded; + decaySpeed = movement.Speed; + movement.Jump(jumpHeight); + animator.SetTrigger("JumpStart"); + } + public override void UpdateKinesis() { + if (isEndJump) { return; } + // 衰退速度 + decaySpeed = Mathf.Lerp(decaySpeed, 0, Time.deltaTime * 0.8f); + movement.Move(moveDirection, decaySpeed, acceleration, isRotation); + // 跳跃状态判断 + if (isGrounded == movement.Grounded) { return; } + isGrounded = movement.Grounded; + // 起跳 + if (!isGrounded) { return; } + // 落地 + isEndJump = true; + animator.SetTrigger("JumpLand"); + movement.Move(Vector2.zero, decaySpeed, acceleration, isRotation); + } + public override void FinishKinesis() { + // throw new System.NotImplementedException(); + } + public override void AnimationExit() { + isTransition = true; + // 转换到移动 + KMove kMove = new KMove(character, moveDirection, isRotation); + kMove.Settings(moveSpeed, acceleration); + character.Transition(kMove); + } + } +} diff --git a/Packages/Character/Runtime/Kinesis/KJump.cs.meta b/Packages/Character/Runtime/Kinesis/KJump.cs.meta new file mode 100644 index 0000000..ea9735c --- /dev/null +++ b/Packages/Character/Runtime/Kinesis/KJump.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d61c404e3dc615b4eb590448b876863c +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/Character/Runtime/Kinesis/KMove.cs b/Packages/Character/Runtime/Kinesis/KMove.cs new file mode 100644 index 0000000..018b29a --- /dev/null +++ b/Packages/Character/Runtime/Kinesis/KMove.cs @@ -0,0 +1,73 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +namespace MuHua { + /// + /// 移动 - 运动 + /// + public class KMove : IKinesis { + /// 基础角色 + public readonly MCharacter character; + + /// 移动速度 + public float moveSpeed = 2; + /// 加速度 + public float acceleration = 15; + /// 移动方向 + public Vector2 moveDirection; + /// 初始位置 + public Vector3 position; + /// 初始角度 + public Vector3 eulerAngles; + /// 是否旋转 + public bool isRotation; + /// 初始设置 + public bool isInitial = false; + + /// 变换器 + public Transform transform => character.transform; + /// 动画器 + public Animator animator => character.animator; + /// 运动器 + public Movement movement => character.movement; + + public KMove(MCharacter character, Vector2 moveDirection, bool isRotation) { + this.character = character; + this.moveDirection = moveDirection; + this.isRotation = isRotation; + } + + public void Settings(float moveSpeed, float acceleration) { + this.moveSpeed = moveSpeed; + this.acceleration = acceleration; + } + public void Settings(Vector3 position, Vector3 eulerAngles) { + this.position = position; + this.eulerAngles = eulerAngles; + isInitial = true; + } + + public override bool Transition(IKinesis kinesis) { + return true; + } + public override void StartKinesis() { + movement.Move(moveDirection, moveSpeed, acceleration, isRotation); + if (!isInitial) { return; } + transform.position = position; + transform.eulerAngles = eulerAngles; + } + public override void UpdateKinesis() { + // 更新动画器 + animator.SetFloat("MoveSpeed", movement.Speed); + // 移动结束 + if (movement.Speed == 0) { character.Transition(new KIdle()); } + } + public override void FinishKinesis() { + // throw new System.NotImplementedException(); + } + public override void AnimationExit() { + // throw new System.NotImplementedException(); + } + } +} \ No newline at end of file diff --git a/Packages/Character/Runtime/Kinesis/KMove.cs.meta b/Packages/Character/Runtime/Kinesis/KMove.cs.meta new file mode 100644 index 0000000..4a487c9 --- /dev/null +++ b/Packages/Character/Runtime/Kinesis/KMove.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e2b41872ba018e447a649cb6bb35059f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/Character/Runtime/MCharacter.cs b/Packages/Character/Runtime/MCharacter.cs new file mode 100644 index 0000000..9f91054 --- /dev/null +++ b/Packages/Character/Runtime/MCharacter.cs @@ -0,0 +1,27 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +namespace MuHua { + /// + /// 角色 - 模块 + /// + public abstract class MCharacter { + + /// 变换器 + public Transform transform; + /// 动画器 + public Animator animator; + /// 运动器 + public Movement movement; + + public MCharacter(Animator animator) => this.animator = animator; + + /// 更新 + public abstract void Update(); + /// 动作过渡 + public abstract bool Transition(IKinesis kinesis); + /// 动画结束 + public abstract void AnimationExit(); + } +} \ No newline at end of file diff --git a/Packages/Character/Runtime/MCharacter.cs.meta b/Packages/Character/Runtime/MCharacter.cs.meta new file mode 100644 index 0000000..9d057c4 --- /dev/null +++ b/Packages/Character/Runtime/MCharacter.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f75543aff254f1c4899eb3d332ba5de9 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/Character/Runtime/MCharacterCollision.cs b/Packages/Character/Runtime/MCharacterCollision.cs new file mode 100644 index 0000000..1541c6e --- /dev/null +++ b/Packages/Character/Runtime/MCharacterCollision.cs @@ -0,0 +1,37 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +namespace MuHua { + /// + /// 碰撞角色 - 模块 + /// + public class MCharacterCollision : MCharacter { + + /// 当前动作 + public IKinesis currentKinesis; + + public MCharacterCollision(Animator animator, CharacterController controller, LayerMask ground) : base(animator) { + movement = new MovementCollision(controller, ground); + + Transition(new KIdle()); + } + + public override void Update() { + movement.Update(); + currentKinesis.UpdateKinesis(); + } + public override bool Transition(IKinesis kinesis) { + // 不可以转换 + if (currentKinesis != null && !currentKinesis.Transition(kinesis)) { return false; } + // 进行转换 + currentKinesis?.FinishKinesis(); + currentKinesis = kinesis; + currentKinesis?.StartKinesis(); + return true; + } + public override void AnimationExit() { + currentKinesis.AnimationExit(); + } + } +} \ No newline at end of file diff --git a/Packages/Character/Runtime/MCharacterCollision.cs.meta b/Packages/Character/Runtime/MCharacterCollision.cs.meta new file mode 100644 index 0000000..4c63c81 --- /dev/null +++ b/Packages/Character/Runtime/MCharacterCollision.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: fa752d6843dd06146b699b3588a59ea1 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/Character/Runtime/MCharacterRigidbody.cs b/Packages/Character/Runtime/MCharacterRigidbody.cs new file mode 100644 index 0000000..221a09b --- /dev/null +++ b/Packages/Character/Runtime/MCharacterRigidbody.cs @@ -0,0 +1,18 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class MCharacterRigidbody : MonoBehaviour +{ + // Start is called before the first frame update + void Start() + { + + } + + // Update is called once per frame + void Update() + { + + } +} diff --git a/Packages/Character/Runtime/MCharacterRigidbody.cs.meta b/Packages/Character/Runtime/MCharacterRigidbody.cs.meta new file mode 100644 index 0000000..f54bb9b --- /dev/null +++ b/Packages/Character/Runtime/MCharacterRigidbody.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c073d7ddd6e118746b2709e22bcf7ea6 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/Character/Runtime/MCharacterStandard.cs b/Packages/Character/Runtime/MCharacterStandard.cs new file mode 100644 index 0000000..4d5af02 --- /dev/null +++ b/Packages/Character/Runtime/MCharacterStandard.cs @@ -0,0 +1,37 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +namespace MuHua { + /// + /// 标准角色 - 模块 + /// + public class MCharacterStandard : MCharacter { + + /// 当前动作 + public IKinesis currentKinesis; + + public MCharacterStandard(Animator animator, LayerMask ground) : base(animator) { + movement = new MovementStandard(transform, ground); + + Transition(new KIdle()); + } + + public override void Update() { + movement.Update(); + currentKinesis.UpdateKinesis(); + } + public override bool Transition(IKinesis kinesis) { + // 不可以转换 + if (currentKinesis != null && !currentKinesis.Transition(kinesis)) { return false; } + // 进行转换 + currentKinesis?.FinishKinesis(); + currentKinesis = kinesis; + currentKinesis?.StartKinesis(); + return true; + } + public override void AnimationExit() { + currentKinesis.AnimationExit(); + } + } +} diff --git a/Packages/Character/Runtime/MCharacterStandard.cs.meta b/Packages/Character/Runtime/MCharacterStandard.cs.meta new file mode 100644 index 0000000..4ef4bef --- /dev/null +++ b/Packages/Character/Runtime/MCharacterStandard.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 7eb8fc105ff36704499c0a954daa9c5c +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/Character/Runtime/Presets.meta b/Packages/Character/Runtime/Presets.meta deleted file mode 100644 index 362fcc4..0000000 --- a/Packages/Character/Runtime/Presets.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 8c36f49b360d4c048aef47715ebb0616 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Packages/Character/Runtime/Presets/KinesisIdle.cs b/Packages/Character/Runtime/Presets/KinesisIdle.cs deleted file mode 100644 index b63c0b5..0000000 --- a/Packages/Character/Runtime/Presets/KinesisIdle.cs +++ /dev/null @@ -1,20 +0,0 @@ -using System.Collections; -using System.Collections.Generic; -using UnityEngine; - -namespace MuHua { - /// - /// 空闲动作 - /// - public class KinesisIdle : IKinesis { - - public bool Transition(IKinesis kinesis) => true; - public void StartKinesis() { } - public void UpdateKinesis() { } - public void FinishKinesis() { } - - public void AnimationEffects() { } - public void AnimationEnd() { } - public void AnimationExit() { } - } -} diff --git a/Packages/Character/Runtime/Presets/KinesisIdle.cs.meta b/Packages/Character/Runtime/Presets/KinesisIdle.cs.meta deleted file mode 100644 index 2f6acd1..0000000 --- a/Packages/Character/Runtime/Presets/KinesisIdle.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 99fdb0fe5f05b3b44bf010af88ab1f8f -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Packages/Character/Runtime/Presets/KinesisMove.cs b/Packages/Character/Runtime/Presets/KinesisMove.cs deleted file mode 100644 index cbb1cc5..0000000 --- a/Packages/Character/Runtime/Presets/KinesisMove.cs +++ /dev/null @@ -1,61 +0,0 @@ -using System.Collections; -using System.Collections.Generic; -using UnityEngine; - -namespace MuHua { - /// - /// 移动动作 - /// - public class KinesisMove : IKinesis { - - public Vector3 position; - public Vector3 eulerAngles; - public Vector2 moveDirection;// 移动方向 - public KinesisMovement movement; - public KinesisController controller; - - public KinesisMove(KinesisController controller, Vector2 moveDirection) { - this.controller = controller; - this.moveDirection = moveDirection; - movement = controller.movement; - position = movement.transform.position; - eulerAngles = movement.transform.eulerAngles; - } - public KinesisMove(KinesisController controller, Vector2 moveDirection, Vector3 position, Vector3 eulerAngles) { - this.position = position; - this.eulerAngles = eulerAngles; - this.controller = controller; - this.moveDirection = moveDirection; - movement = controller.movement; - } - - public bool Transition(IKinesis kinesis) { - KinesisMove move = kinesis as KinesisMove; - if (move == null) { return true; } - position = move.position; - eulerAngles = move.eulerAngles; - moveDirection = move.moveDirection; - movement.transform.position = position; - movement.transform.eulerAngles = eulerAngles; - movement.SetDirection(moveDirection); - return false; - } - public void StartKinesis() { - movement.transform.position = position; - movement.transform.eulerAngles = eulerAngles; - movement.SetDirection(moveDirection); - } - public void UpdateKinesis() { - if (!movement.IsStop) { return; } - controller.TransitionKinesis(new KinesisIdle()); - } - public void FinishKinesis() { - movement.StopMovement(); - } - - public void AnimationEffects() { } - public void AnimationEnd() { } - public void AnimationExit() { } - - } -} diff --git a/Packages/Character/Runtime/Presets/KinesisMove.cs.meta b/Packages/Character/Runtime/Presets/KinesisMove.cs.meta deleted file mode 100644 index b3e1b5a..0000000 --- a/Packages/Character/Runtime/Presets/KinesisMove.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 5c1bd98cf0e078140ab99d637e398ed1 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Packages/Character/package.json b/Packages/Character/package.json index 6b5e735..c46a18a 100644 --- a/Packages/Character/package.json +++ b/Packages/Character/package.json @@ -14,8 +14,5 @@ "description": "", "path": "Samples" } - ], - "dependencies": { - "com.unity.inputsystem": "1.7.0" - } + ] } \ No newline at end of file diff --git a/Packages/packages-lock.json b/Packages/packages-lock.json index 1fe95e6..55e2f01 100644 --- a/Packages/packages-lock.json +++ b/Packages/packages-lock.json @@ -283,9 +283,7 @@ "version": "file:Character", "depth": 0, "source": "embedded", - "dependencies": { - "com.unity.inputsystem": "1.7.0" - } + "dependencies": {} }, "muhua-follow-tag": { "version": "file:FollowTag",