Files
Loong/Assets/_Loong/Scripts/PullHand.cs

109 lines
2.8 KiB
C#

using System;
using System.Collections;
using System.Collections.Generic;
using DragonLi.Core;
using UnityEngine;
public class PullHand : MonoBehaviour
{
public Collider selfCollider;
public Bow bow;
private bool _inArrowArea = false;
private bool _isPulling = false;
public bool isUser;
public void Start()
{
MRInput.Ins.RegisterClickRrightTrigger(() =>
{
if(!isUser|| GameManager.Ins.isGameEnd) return;
// 钩弦
if (!_isPulling && _inArrowArea)
{
// Debug.Log("钩弦");
selfCollider.enabled = false;
_isPulling = true;
// 生成箭矢
bow.CreateArrowInHand();
}
});
MRInput.Ins.RegisterCancelRightTrigger(() =>
{
if(!isUser|| GameManager.Ins.isGameEnd) return;
// 松弦
if (_isPulling && bow != null)
{
// Debug.Log("松弦");
_isPulling = false;
_inArrowArea = false;
// 射出箭矢
bow.ShootArrow();
CoroutineTaskManager.Instance.WaitSecondTodo(() =>
{
selfCollider.enabled = true;
}, 0.5f);
}
});
MRInput.Ins.RegisterHoldPressRightTrigger(() =>
{
if(!isUser|| GameManager.Ins.isGameEnd) return;
// 拉弓
if (_isPulling && bow != null)
{
// Debug.Log("拉弓");
bow.Pull(transform);
// _nowArrow.Move(transform);
}
});
isUser = true;
}
private void Update()
{
if(!isUser|| GameManager.Ins.isGameEnd) return;
if (Input.GetMouseButtonDown(0))
{
bow.CreateArrowInHand();
bow.Pull(transform);
bow.ShootArrow();
CoroutineTaskManager.Instance.WaitSecondTodo(() =>
{
selfCollider.enabled = true;
}, 0.5f);
}
if (Input.GetMouseButtonUp(0))
{
// Debug.Log("松弦");
_isPulling = false;
_inArrowArea = false;
// 射出箭矢
bow.ShootArrow();
CoroutineTaskManager.Instance.WaitSecondTodo(() =>
{
selfCollider.enabled = true;
}, 0.5f);
}
}
void OnTriggerEnter(Collider other)
{
Debug.Log("进入弓弦区域");
_inArrowArea = true;
bow = other.gameObject.GetComponent<Bow>();
}
void OnTriggerExit(Collider other)
{
Debug.Log("离开弓弦区域");
_inArrowArea = false;
bow = null;
}
public void IsUserBow(bool curIsUser)
{
isUser = curIsUser;
}
}