UP-Viagg-io/Viagg-io/Assets/Packages/MyBT/BTC/Handlers/NamedGrabEvent.cs

91 lines
2.3 KiB
C#

//============= Copyright (c) Ludic GmbH, All rights reserved. ==============
//
// Purpose: Part of the My Behaviour Tree Controller Code
//
//=============================================================================
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;
using MyBT;
using UnityEngine.XR.Interaction.Toolkit;
#if UNITY_EDITOR
using UnityEditor;
[CustomEditor(typeof(NamedGrabEvent))]
public class NamedGrabEventInspector : ComponentHandlerInspector {
}
#endif
public class NamedGrabEvent : ComponentHandler {
public override string TypeLabel () {
return "NamedGrabEvent";
}
public override string ContentLabel() {
UpdateComponent();
return objName;
}
public override void UpdateComponent() {
base.UpdateComponent();
if (GetComponent<XRGrabInteractable>())
{
//_xrGrabInteractable = GetComponent<XRGrabInteractable>();
GetComponent<XRGrabInteractable>().selectEntered.AddListener(SelectEnterEventHandler);
}
else {
Debug.LogWarning($"NamedEventTrigger '{gameObject.name}' could not attach click event (missing button or collider)");
}
}
public string objName = "GrabObjXY";
//private XRGrabInteractable _xrGrabInteractable;
private bool triggered = false;
public void SelectEnterEventHandler(SelectEnterEventArgs args)
{
triggered = true;
}
public override string titleText {
get {
return "Run: Will Succeed on Pointer Click";
}
}
public override string[][] helpText {
get {
return new string[][] {
new string[] {"Run", "Return Success on Press", $"BTC.Run(\"{roomId}\", \"{gameObject.name}\")"},
};
}
}
public override void Run(MyBT.NodeState nodeState) {
if (nodeState == NodeState.FirstRun) {
// reset event trigger at start
triggered = false;
//ToggleActive(true);
}
if (nodeState == NodeState.Aborting) {
triggered = false;
//ToggleActive(false);
}
if (triggered) {
//ToggleActive(false);
Task.SetSucceeded();
return;
}
}
}