using UnityEngine;
using UnityEngine.UI;
using UnityEngine.EventSystems;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using omFrame;
using omFrame.Static;
using omFrame.Table;
using Autohand;
using FTS;
using FTS.Device;
using FTS.Component;
using omFrame.Utility;
public enum GestureType
{
Cross,
HandsUp,
HandsUpDelay,
HookUp_aBit,
HookUp_Full,
ComeOn,
None
}
// 제스쳐 전체적으로 관리하는 스크립트
public class TailHook_Gesture : TailHookQuest
{
[SerializeField] protected bool bDebugDialog = false;
public GestureType gestureType; // 각 미션의 제스쳐타입 선택
[Header("플레이어가 대기할 시간")]
public float waitTime = 1f; // 플레이어가 대기하는 시간
[Header("기다리는 시간 확인")]
public float checkTime = 0f; // 시간 확인
TailHook_HandsUp_HookUp m_HandsUp_HookUp;
TaillHook_HandsUpDelay_Cross m_HookUpDelay_Cross;
public bool m_isEnter = false;
public bool check = true;
public omNetObject netObj;
override public void Init()
{
base.Init();
netObj = FindObjectOfType<omNetObject>();
//netObj.StartSendNetworkSync();
}
// 해당 제스쳐에 따라 스크립트가 켜지고 꺼짐.
override public void OnQuestEnter()
{
netQuest = GetComponent<TailHook_NetQuest>();
QuestGestureType();
base.OnQuestEnter();
m_isEnter = true;
}
protected void Update()
{
if (m_isEnter && check)
{
checkTime += Time.deltaTime;
if (checkTime >= waitTime)
{
if (netQuest != null)
{
netQuest.SendQuest();
}
}
}
if (bDebugDialog)
Debuging_Dialog();
}
void QuestGestureType()
{
TailHook_HandsUp_HookUp TailHook_HandsUp_HookUp = FindObjectOfType<TailHook_HandsUp_HookUp>();
TaillHook_HandsUpDelay_Cross TailHook_HansUpDelay_Cross = FindObjectOfType<TaillHook_HandsUpDelay_Cross>();
netObj.StartSendNetworkSync();
switch (gestureType)
{
case GestureType.HandsUp:
//Pannel23True();
HandUpHookUpGetComponent();
TailHook_HandsUp_HookUp.enabled = true;
TailHook_HansUpDelay_Cross.enabled = false;
omFrameWork.Inst.Dialog.GetWSHud.OpenInfoAniInTime(HudEmojiSignType.Motion2, 1f, 20f);
TailHook_HandsUp_HookUp.gestureType = GestureType.HandsUp;
TailHook_HansUpDelay_Cross.gestureType = GestureType.None;
break;
case GestureType.HookUp_aBit:
HandUpHookUpGetComponent();
TailHook_HandsUp_HookUp.enabled = true;
TailHook_HansUpDelay_Cross.enabled = false;
omFrameWork.Inst.Dialog.GetWSHud.OpenInfoAniInTime(HudEmojiSignType.Motion4, 1f, 20f);
TailHook_HandsUp_HookUp.gestureType = GestureType.HookUp_aBit;
TailHook_HansUpDelay_Cross.gestureType = GestureType.None;
break;
case GestureType.HookUp_Full:
HandUpHookUpGetComponent();
TailHook_HandsUp_HookUp.enabled = true;
TailHook_HansUpDelay_Cross.enabled = false;
omFrameWork.Inst.Dialog.GetWSHud.OpenInfoAniInTime(HudEmojiSignType.Motion4, 1f, 20f);
TailHook_HandsUp_HookUp.gestureType = GestureType.HookUp_Full;
TailHook_HansUpDelay_Cross.gestureType = GestureType.None;
break;
case GestureType.ComeOn:
//Pannel23True();
HandUpHookUpGetComponent();
TailHook_HandsUp_HookUp.enabled = true;
TailHook_HansUpDelay_Cross.enabled = false;
omFrameWork.Inst.Dialog.GetWSHud.OpenInfoAniInTime(HudEmojiSignType.Motion5, 1f, 20f);
TailHook_HandsUp_HookUp.movebool = true;
TailHook_HandsUp_HookUp.gestureType = GestureType.ComeOn;
TailHook_HansUpDelay_Cross.gestureType = GestureType.None;
break;
case GestureType.Cross:
DelayGetComponent();
TailHook_HandsUp_HookUp.enabled = false;
TailHook_HansUpDelay_Cross.enabled = true;
omFrameWork.Inst.Dialog.GetWSHud.OpenInfoAniInTime(HudEmojiSignType.Motion1, 1f, 20f);
TailHook_HandsUp_HookUp.gestureType = GestureType.None;
TailHook_HansUpDelay_Cross.gestureType = GestureType.Cross;
break;
case GestureType.HandsUpDelay:
//Pannel23True();
DelayGetComponent();
TailHook_HandsUp_HookUp.enabled = false;
TailHook_HansUpDelay_Cross.enabled = true;
omFrameWork.Inst.Dialog.GetWSHud.OpenInfoAniInTime(HudEmojiSignType.Motion3, 1f, 20f);
TailHook_HansUpDelay_Cross.BackMovebool = true;
TailHook_HandsUp_HookUp.gestureType = GestureType.None;
TailHook_HansUpDelay_Cross.gestureType = GestureType.HandsUpDelay;
break;
}
}
void HandUpHookUpGetComponent()
{
m_HandsUp_HookUp = GameObject.Find("Player Head Camera").GetComponent<TailHook_HandsUp_HookUp>();
}
void DelayGetComponent()
{
m_HookUpDelay_Cross = GameObject.Find("Player Head Camera").GetComponent<TaillHook_HandsUpDelay_Cross>();
}
void VibrateFingerOff()
{
omFrameWork.Inst.VR.StopVibrateFinger(FTS.HandType.Left, VibrateFingerType.All);
omFrameWork.Inst.VR.StopVibrateFinger(FTS.HandType.Right, VibrateFingerType.All);
}
public void callBack()
{
//m_callBack();
}
override public void OnQuestExit()
{
base.OnQuestExit();
m_isEnter = false;
check = false;
VibrateFingerOff();
omFrameWork.Inst.Dialog.GetWSHud.CloseInfoAni();
}
#region 다이어로그 관련
public void Debuging_Dialog()
{
// 1~9 숫자키 눌러 다이얼로그 테스트
if ((Input.GetKey(KeyCode.LeftShift) || Input.GetKey(KeyCode.RightShift)) && Input.GetKeyDown(KeyCode.Alpha1))
{
omLog.LogChannel(eLogChannel.Framework, string.Format("Debuging_Dialog > HudBase"));
//허드 테스트
//omFrameWork.Inst.Dialog.GetWSHud.StartAllHudInfo();
//omFrameWork.Inst.Dialog.GetWSHud.SetTitleText(omUIHelper.TestGetScriptTableID());
//페이드 인아웃
//omFrameWork.Inst.Dialog.GetWSHud.SetCameraFollow(camera);
omFrameWork.Inst.Dialog.GetWSHud.FadeOutInUI(1, 1, 1, 1);
//tts테스트
//omFrameWork.Inst.Dialog.GetWSHud.SetTitleText(7002, true);
//omFrameWork.Inst.Dialog.GetWSHud.SetInfoText(7005, true);
//프로그래스바 테스트
//omFrameWork.Inst.Dialog.GetWSHud.OpenProgressBar();
}
else if ((Input.GetKey(KeyCode.LeftShift) || Input.GetKey(KeyCode.RightShift)) && Input.GetKeyDown(KeyCode.Alpha2))
{
omLog.LogChannel(eLogChannel.Framework, string.Format("Debuging_Dialog > Marker"));
//마커 테스트
omFrameWork.Inst.Dialog.GetWSMarker.OpenMaker(MarkerViewType.IMAGE, omUIHelper.TestGetSpriteTableID(), Vector3.zero, 200, 200, Quaternion.identity);
}
else if ((Input.GetKey(KeyCode.LeftShift) || Input.GetKey(KeyCode.RightShift)) && Input.GetKeyDown(KeyCode.Alpha3))
{
omLog.LogChannel(eLogChannel.Framework, string.Format("Debuging_Dialog > HandTouch"));
//핸드터치 테스트
omFrameWork.Inst.Dialog.GetWSHandTouch.OpenTouch(omUIHelper.TestGetSpriteTableID(), Vector3.zero, 350, 350, Quaternion.identity, null);
}
else if ((Input.GetKey(KeyCode.LeftShift) || Input.GetKey(KeyCode.RightShift)) && Input.GetKeyDown(KeyCode.Alpha4))
{
omLog.LogChannel(eLogChannel.Framework, string.Format("Debuging_Dialog > ProgressBar"));
//오브젝트 프로그래스바 테스트
omFrameWork.Inst.Dialog.GetWSProgressBar.OpenProgressBar(Vector3.zero, 300, 150, Quaternion.identity, 100);
}
else if ((Input.GetKey(KeyCode.LeftShift) || Input.GetKey(KeyCode.RightShift)) && Input.GetKeyDown(KeyCode.Alpha5))
{
omLog.LogChannel(eLogChannel.Framework, string.Format("Debuging_Dialog > HudEmoji"));
//허드 이모지 테스트
omFrameWork.Inst.Dialog.GetWSHud.OpenInfoAni(HudEmojiSignType.Motion2, 0.5f);
}
else if ((Input.GetKey(KeyCode.LeftShift) || Input.GetKey(KeyCode.RightShift)) && Input.GetKeyDown(KeyCode.Alpha6))
{
omLog.LogChannel(eLogChannel.Framework, string.Format("Debuging_Dialog > Alpha6"));
}
else if ((Input.GetKey(KeyCode.LeftShift) || Input.GetKey(KeyCode.RightShift)) && Input.GetKeyDown(KeyCode.Alpha7))
{
omLog.LogChannel(eLogChannel.Framework, string.Format("Debuging_Dialog > Alpha7"));
}
else if ((Input.GetKey(KeyCode.LeftShift) || Input.GetKey(KeyCode.RightShift)) && Input.GetKeyDown(KeyCode.Alpha8))
{
omLog.LogChannel(eLogChannel.Framework, string.Format("Debuging_Dialog > Alpha8"));
}
else if ((Input.GetKey(KeyCode.LeftShift) || Input.GetKey(KeyCode.RightShift)) && Input.GetKeyDown(KeyCode.Alpha9))
{
omLog.LogChannel(eLogChannel.Framework, string.Format("Debuging_Dialog > Alpha9"));
}
}
#endregion
}
TailHook_Wait
TailHook_Touch
TaillHook_HandsUpDelay_Cross
TailHook_HandsUp_HookUp