using System; using System.Collections; using System.Collections.Generic; using ECM2; using ECM2.Examples.FirstPerson; using Fantasy; using NBF.Fishing2; using NBF.Utils; using UnityEngine; using UnityEngine.InputSystem; namespace NBF { public partial class FPlayer : MonoService { public Transform Root; public Transform Eye; public Transform FppLook; public Transform IK; public PlayerModelAsset ModelAsset; public CharacterMovement Character; public FirstPersonCharacter FirstPerson; public GameObject ModelGameObject { get; set; } public FPlayerData Data { get; private set; } public readonly List Tackles = new List(); public FRod Rod { get; private set; } protected override void OnAwake() { Character = gameObject.GetComponent(); FirstPerson = gameObject.GetComponent(); Data = FPlayerData.Instance; transform.localPosition = new Vector3(484, 1, 422); } private void Start() { AddInputEvent(); CreatePlayerModel(); } private void Update() { UpdateMove(); } private void OnDestroy() { RemoveInputEvent(); } #region 角色模型 private void CreatePlayerModel() { var modelObject = PrefabsHelper.CreatePlayer(Root, "Human_Male"); modelObject.transform.localPosition = Vector3.zero; ModelGameObject = modelObject; ModelAsset = modelObject.GetComponent(); } #endregion #region 使用物品 public IEnumerator UseItem(ItemInfo item) { var itemType = item?.ConfigId.GetItemType(); if (itemType == ItemType.Rod) { //判断旧的是否要收回 if (Rod != null) { yield return Rod.Destroy(); Tackles.Remove(Rod); Rod = null; } Rod = item.Config.InstantiateAndComponent(SceneSettings.Instance.GearNode, Vector3.zero, Quaternion.identity); yield return Rod.InitRod(this, item); Tackles.Add(Rod); } } #endregion } }