Files
Fishing2/Assets/Scripts/Fishing/Player/FPlayer.cs
Bob.Song 875960d3fd player
2025-12-24 18:01:56 +08:00

95 lines
2.5 KiB
C#

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<FPlayer>
{
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 PlayerAnimator Animator;
public FPlayerData Data { get; private set; }
public readonly List<FTackle> Tackles = new List<FTackle>();
public FTackle HandTackle { get; private set; }
protected override void OnAwake()
{
Character = gameObject.GetComponent<CharacterMovement>();
FirstPerson = gameObject.GetComponent<FirstPersonCharacter>();
Animator = gameObject.AddComponent<PlayerAnimator>();
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<PlayerModelAsset>();
Animator.SetModelAsset(this);
}
#endregion
#region 使
public IEnumerator UseItem(ItemInfo item)
{
var itemType = item?.ConfigId.GetItemType();
if (itemType == ItemType.Rod)
{
if (HandTackle)
{
yield return HandTackle.Remove();
Tackles.Remove(HandTackle);
HandTackle = null;
}
//判断旧的是否要收回
var tackle = FTackle.Create(item);
HandTackle = tackle;
yield return tackle.Show(item);
Tackles.Add(tackle);
}
}
#endregion
}
}