Add select exit event handling

story_process
Nadine Ganz 2024-08-14 17:33:21 +02:00
parent 87f398cac3
commit ecd1404c29
4 changed files with 124 additions and 19 deletions

View File

@ -78,8 +78,30 @@ Tree("32_Grotto_Kueche_Zwiebeln_schneiden") {
Composite(Sequence) {
BTC.Show("GO/NamedSocketEvent.SOCKETS.RisottoSocket")
BTC.Run("NamedGrabEvent/NamedOutline.INTERACTABLES.Risotto")
BTC.Hide("NamedGrabEvent/NamedOutline.INTERACTABLES.Risotto")
BTC.Run("GO/NamedSocketEvent.SOCKETS.RisottoSocket")
BTC.CompareEventTriggered("NamedGrabEvent/NamedOutline.INTERACTABLES.Risotto", "SelectEnter", "true")
//BTC.Run("AudioSource.AUDIO.Kueche2FZwiebelnsc")
BTC.Run("NamedGrabEvent/NamedOutline.INTERACTABLES.Risotto")
//BTC.Run("AudioSource.AUDIO.Kueche2FZwiebelnsc")
Composite(Race) {
Composite(Marathon) {
// Success
BTC.Run("GO/NamedSocketEvent.SOCKETS.RisottoSocket")
BTC.CompareEventTriggered("NamedGrabEvent/NamedOutline.INTERACTABLES.Risotto", "SelectExit", "true")
BTC.Hide("NamedGrabEvent/NamedOutline.INTERACTABLES.Risotto")
}
Composite(Sequence) {
// Fail
BTC.CompareEventTriggered("NamedGrabEvent/NamedOutline.INTERACTABLES.Risotto", "SelectExit", "true")
BTC.Wait(3)
BTC.Run("AudioSource.AUDIO.Kueche2FZwiebelnsc")
}
}
}
Composite(Sequence) {
BTC.Show("GO/NamedSocketEvent.SOCKETS.SalzSocket")

View File

@ -35,6 +35,7 @@ public class NamedGrabEvent : ComponentHandler {
if (GetComponent<XRGrabInteractable>())
{
GetComponent<XRGrabInteractable>().selectEntered.AddListener(SelectEnterEventHandler);
GetComponent<XRGrabInteractable>().selectExited.AddListener(SelectExitEventHandler);
}
else {
Debug.LogWarning($"NamedGrabEvent '{gameObject.name}' could not attach grab event (missing XR Grab Interactable?)");
@ -42,23 +43,29 @@ public class NamedGrabEvent : ComponentHandler {
}
public string objName = "GrabObjXY";
private bool triggered = false;
private bool selectEnterTriggered = false;
private bool selectExitTriggered = false;
public void SelectEnterEventHandler(SelectEnterEventArgs args)
private void SelectEnterEventHandler(SelectEnterEventArgs args)
{
triggered = true;
selectEnterTriggered = true;
}
private void SelectExitEventHandler(SelectExitEventArgs args)
{
selectExitTriggered = true;
}
public override string titleText {
get {
return "Run: Will Succeed on Select Enter Event";
return "Run: Will Succeed on Select Enter and Exit Event";
}
}
public override string[][] helpText {
get {
return new string[][] {
new string[] {"Run", "Return Success on Select Enter Event", $"BTC.Run(\"{roomId}\", \"{gameObject.name}\")"},
new string[] {"Run", "Return Success on Select Enter and Exit Event", $"BTC.Run(\"{roomId}\", \"{gameObject.name}\")"},
};
}
}
@ -66,16 +73,64 @@ public class NamedGrabEvent : ComponentHandler {
public override void Run(MyBT.NodeState nodeState) {
if (nodeState == NodeState.FirstRun) {
// reset event trigger at start
triggered = false;
selectEnterTriggered = false;
selectExitTriggered = false;
}
if (nodeState == NodeState.Aborting) {
triggered = false;
selectEnterTriggered = false;
selectExitTriggered = false;
}
if (triggered) {
if (selectEnterTriggered) {
Task.SetSucceeded();
return;
}
if (selectExitTriggered)
{
Task.SetSucceeded();
return;
}
}
[Task]
public void CompareEventTriggered(MyBT.NodeState nodeState, string key, bool value)
{
if ((nodeState == NodeState.FirstRun) || (nodeState == NodeState.Running))
{
if (key == "SelectEnter")
{
if (selectEnterTriggered == value)
{
Debug.Log($"CompareEventTriggered {key} with {value} = equal");
Task.SetSucceeded();
return;
}
else
{
Debug.Log($"CompareEventTriggered {key} with {value} = not equal");
Task.SetFailed();
return;
}
}
else if (key == "SelectExit")
{
if (selectExitTriggered == value)
{
Debug.Log($"CompareEventTriggered {key} with {value} = equal");
Task.SetSucceeded();
return;
}
else
{
Debug.Log($"CompareEventTriggered {key} with {value} = not equal");
Task.SetFailed();
return;
}
}
Task.SetFailed();
}
}
}

View File

@ -1 +1 @@
2024-08-12T12:08:31.2245540Z
2024-08-14T15:25:32.9708470Z

View File

@ -5379,7 +5379,7 @@ MonoBehaviour:
m_InteractableHoverScale: 1
m_RecycleDelayTime: 1
m_HoverSocketSnapping: 0
m_SocketSnappingRadius: 0.1
m_SocketSnappingRadius: 0.15
m_SocketScaleMode: 0
m_FixedScale: {x: 1, y: 1, z: 1}
m_TargetBoundsSize: {x: 1, y: 1, z: 1}
@ -5758,7 +5758,7 @@ MonoBehaviour:
m_InteractableHoverScale: 1
m_RecycleDelayTime: 1
m_HoverSocketSnapping: 0
m_SocketSnappingRadius: 0.1
m_SocketSnappingRadius: 0.15
m_SocketScaleMode: 0
m_FixedScale: {x: 1, y: 1, z: 1}
m_TargetBoundsSize: {x: 1, y: 1, z: 1}
@ -107987,7 +107987,7 @@ MonoBehaviour:
m_InteractableHoverScale: 1
m_RecycleDelayTime: 1
m_HoverSocketSnapping: 0
m_SocketSnappingRadius: 0.1
m_SocketSnappingRadius: 0.15
m_SocketScaleMode: 0
m_FixedScale: {x: 1, y: 1, z: 1}
m_TargetBoundsSize: {x: 1, y: 1, z: 1}
@ -108741,7 +108741,7 @@ MonoBehaviour:
m_InteractableHoverScale: 1
m_RecycleDelayTime: 1
m_HoverSocketSnapping: 0
m_SocketSnappingRadius: 0.1
m_SocketSnappingRadius: 0.15
m_SocketScaleMode: 0
m_FixedScale: {x: 1, y: 1, z: 1}
m_TargetBoundsSize: {x: 1, y: 1, z: 1}
@ -212863,7 +212863,7 @@ MonoBehaviour:
m_InteractableHoverScale: 1
m_RecycleDelayTime: 1
m_HoverSocketSnapping: 0
m_SocketSnappingRadius: 0.1
m_SocketSnappingRadius: 0.15
m_SocketScaleMode: 0
m_FixedScale: {x: 1, y: 1, z: 1}
m_TargetBoundsSize: {x: 1, y: 1, z: 1}
@ -213016,6 +213016,10 @@ PrefabInstance:
propertyPath: m_InteractionLayers.m_Bits
value: 4294967295
objectReference: {fileID: 0}
- target: {fileID: 4395678103393010410, guid: 5eccbf4be2c00e94689ee8062e4e7276, type: 3}
propertyPath: m_InteractionLayers.m_Bits
value: 4294967295
objectReference: {fileID: 0}
- target: {fileID: 5615218200109173614, guid: 5eccbf4be2c00e94689ee8062e4e7276, type: 3}
propertyPath: m_RotationAction.m_Reference
value:
@ -213064,6 +213068,10 @@ PrefabInstance:
propertyPath: m_InteractionLayers.m_Bits
value: 4294967295
objectReference: {fileID: 0}
- target: {fileID: 7973328002167281074, guid: 5eccbf4be2c00e94689ee8062e4e7276, type: 3}
propertyPath: m_InteractionLayers.m_Bits
value: 4294967295
objectReference: {fileID: 0}
- target: {fileID: 8733093507751517968, guid: 5eccbf4be2c00e94689ee8062e4e7276, type: 3}
propertyPath: m_LocalPosition.x
value: -6.699
@ -213074,7 +213082,27 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 8733093507751517968, guid: 5eccbf4be2c00e94689ee8062e4e7276, type: 3}
propertyPath: m_LocalPosition.z
value: -17.993
value: -18.266
objectReference: {fileID: 0}
- target: {fileID: 8733093507751517968, guid: 5eccbf4be2c00e94689ee8062e4e7276, type: 3}
propertyPath: m_LocalRotation.w
value: 0.64278764
objectReference: {fileID: 0}
- target: {fileID: 8733093507751517968, guid: 5eccbf4be2c00e94689ee8062e4e7276, type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8733093507751517968, guid: 5eccbf4be2c00e94689ee8062e4e7276, type: 3}
propertyPath: m_LocalRotation.y
value: -0.7660445
objectReference: {fileID: 0}
- target: {fileID: 8733093507751517968, guid: 5eccbf4be2c00e94689ee8062e4e7276, type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8733093507751517968, guid: 5eccbf4be2c00e94689ee8062e4e7276, type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: -100
objectReference: {fileID: 0}
- target: {fileID: 9132913291935407762, guid: 5eccbf4be2c00e94689ee8062e4e7276, type: 3}
propertyPath: m_RequestedTrackingOriginMode
@ -214612,7 +214640,7 @@ MonoBehaviour:
overrideLogStringDisplay: 0
overrideDebugInternalActive: 0
overrideDebugChangesActive: 0
instanceID: 360798
instanceID: 249696
__behaviourTreeGenerator: {fileID: 0}
taskScripts:
- {fileID: 4900000, guid: 7100bc138828c402baf6fdd9c426735b, type: 3}
@ -214875,7 +214903,7 @@ MonoBehaviour:
m_InteractableHoverScale: 1
m_RecycleDelayTime: 1
m_HoverSocketSnapping: 0
m_SocketSnappingRadius: 0.1
m_SocketSnappingRadius: 0.15
m_SocketScaleMode: 0
m_FixedScale: {x: 1, y: 1, z: 1}
m_TargetBoundsSize: {x: 1, y: 1, z: 1}