using Cysharp.Threading.Tasks; using Gameplay.Emoji; using Gameplay.Level; using Gameplay.Performance; using Gameplay.Unit; using PhxhSDK; using UnityEngine; namespace Gameplay.Character { public partial class Character { public Transform leftHandTrans; public Transform rightHandTrans; public async UniTask CreateAsync() { var modelPath = runtimeData.configData.modelPath; GameUnitManager.instance.RecordLoadPath(modelPath); await AssetManager.Instance.PostPreload(modelPath); var obj = Load(runtimeData.configData.modelPath); PerformanceManager.instance.HandleCreateUnit(obj); await _OnObjLoaded(obj); } private async UniTask _OnObjLoaded(GameObject obj) { var isEnemy = troopId != ETroopsId.Self; // emoji 会替换outline,所以要在emoji之后 OutlineManager.instance.AutoAddFromObj(obj, isEnemy); leftHandTrans = Skeleton.GetBone("Grip_point02"); rightHandTrans = Skeleton.GetBone("Grip_point01"); cAnim = new CharacterAnim(this); await cAnim.Init(); weapon = new Weapon.ViewWeapon(this); } protected override void UpdateGameObjectName() { SetName($"Character_{GetID()}"); // DebugUtil.Log(Node.GameObject.name); } } }