using Fantasy.Entitas; using Fantasy.Entitas.Interface; using NBF.Fishing2; using UnityEngine; namespace NBF { public class PlayerViewComponent : Entity { public Player Player { get; private set; } public PlayerUnityComponent Unity { get; private set; } #region 生命周期 public void Awake() { Player = GetParent(); var gameObject = PrefabsHelper.CreatePlayer(SceneSettings.Instance.Node); Unity = gameObject.GetComponent(); Unity.Player = Player; CreatePlayerModel(); if (Player.IsSelf) { CameraManager.Instance.SetFppLook(Unity); } Unity.transform.localPosition = new Vector3(484, 1, 422); } public void Update() { } public void LateUpdate() { Player.EyeAngle = GameUtils.GetVerticalAngle(Unity.transform, Unity.FppLook); } public void Destroy() { } #endregion #region 模型创建 private void CreatePlayerModel() { var modelObject = PrefabsHelper.CreatePlayer(Unity.Root, "Human_Male"); modelObject.transform.localPosition = new Vector3(0, 1, 0); Unity.ModelAsset = modelObject.GetComponent(); Unity.ModelAsset.SetPlayer(Unity.FppLook); } #endregion } public class PlayerViewAwakeSystem : AwakeSystem { protected override void Awake(PlayerViewComponent self) { self.Awake(); } } public class PlayerViewDestroySystem : DestroySystem { protected override void Destroy(PlayerViewComponent self) { self.Destroy(); } } public class PlayerViewUpdateSystem : UpdateSystem { protected override void Update(PlayerViewComponent self) { self.Update(); } } public class PlayerViewLateUpdateSystem : LateUpdateSystem { protected override void LateUpdate(PlayerViewComponent self) { self.LateUpdate(); } } }