109 lines
2.8 KiB
C#
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;
|
|
}
|
|
}
|