Add NamedGrabEvent Handler, modify NamedCollider, add dummy items

story_process
Nadine Ganz 2024-07-17 17:51:49 +02:00
parent 0a54a65393
commit bef4508973
7 changed files with 18311 additions and 10580 deletions

View File

@ -4,24 +4,35 @@
Tree("32_Grotto_Kueche_Intro") {
Composite(Sequence) {
BTC.GetKeyDown("Return")
//BTC.GetKeyDown("Return")
BTC.Run("AudioSource.AUDIO.KuecheIntro1F")
// Schuerze greifen - Event Trigger
BTC.GetKeyDown("Return")
// Schuerze greifen
BTC.Run("NamedGrabEvent.INTERACTABLES.Schuerze")
//BTC.GetKeyDown("Return")
BTC.Run("AudioSource.AUDIO.KuecheIntro2F")
// Spracheingabe - Button Klick
// Rezept vorlesen: Button Klick, Spracheingabe fehlt noch
BTC.Show("GO.HANDMENU.Option1Button")
BTC.Set("TextMeshPro.HANDMENU.Option1Button", "text", "Rezept vorlesen")
BTC.Run("NamedEventTrigger.HANDMENU.Option1Button")
// BTC.GetKeyDown("Return")
//BTC.GetKeyDown("Return")
BTC.Run("AudioSource.AUDIO.KuecheIntro3F")
// -- Option 1 -- RACE
// Pilze leuchten - Pilze ins Glas legen - Event Trigger
BTC.GetKeyDown("Return")
// RunTree("32_Grotto_Kueche_Zwiebeln_schneiden")
// -- Option 2
// Timer 5 seconds
// RunTree("32_Grotto_Kueche_Steinpilze_Hilfe")
// Pilze leuchten
// ...
Composite(Race) {
Composite(Sequence) {
// Pilze ins Wasser Glas legen - Event Trigger
BTC.Set("Collider.INTERACTABLES.Wasser", "tag", "Pilz")
BTC.Run("Collider.INTERACTABLES.Wasser")
// RunTree("32_Grotto_Kueche_Zwiebeln_schneiden")
}
Composite(Sequence) {
// Keine Reaction
// Timer 5 seconds
// ...
// RunTree("32_Grotto_Kueche_Steinpilze_Hilfe")
}
}
}
}

View File

@ -25,15 +25,20 @@ public class NamedCollider : ComponentHandler {
public override string ContentLabel() {
UpdateComponent();
return "";
return objName;
}
public override void UpdateComponent() {
base.UpdateComponent();
colliderComponent = GetComponent<Collider>();
rigidbodyComponent = GetComponent<Rigidbody>();
}
public Collider colliderComponent;
public string objName = "ColliderXY";
public Rigidbody rigidbodyComponent;
private bool _collidedWithObj = false;
private string _otherColliderTag = "";
public override string titleText {
get {
@ -85,4 +90,84 @@ public class NamedCollider : ComponentHandler {
if (nodeState == NodeState.Running) {
}
}
public override void Run(NodeState nodeState)
{
switch (nodeState)
{
case NodeState.FirstRun:
_collidedWithObj = false;
/* colliderComponent.isTrigger = true;
if (rigidbodyComponent != null)
{
rigidbodyComponent.isKinematic = true;
}*/
break;
case NodeState.Running:
if (_collidedWithObj)
{
_otherColliderTag = "";
Task.SetSucceeded();
}
break;
case NodeState.Aborting:
//colliderComponent.isTrigger = false;
_collidedWithObj = false;
_otherColliderTag = "";
/* if (rigidbodyComponent != null)
{
rigidbodyComponent.isKinematic = false;
}*/
break;
}
}
public override void Set(NodeState nodeState, string key, string value)
{
if (nodeState == NodeState.FirstRun)
{
if (key == "tag")
{
_otherColliderTag = value;
Task.SetSucceeded();
return;
}
}
Task.SetFailed();
}
private void OnTriggerEnter(Collider other)
{
if (_otherColliderTag != "")
{
if(other.gameObject.CompareTag(_otherColliderTag))
{
_collidedWithObj = true;
}
}
else
{
_collidedWithObj = true;
}
}
private void OnCollisionEnter(Collision collision)
{
if (_otherColliderTag != "")
{
if (collision.gameObject.CompareTag(_otherColliderTag))
{
_collidedWithObj = true;
}
}
else
{
_collidedWithObj = true;
}
}
}

View File

@ -0,0 +1,90 @@
//============= 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;
}
}
}

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 31f211919999446788077b329f6169c7
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1 +1 @@
2024-07-17T08:32:50.9227510Z
2024-07-17T14:25:00.5967240Z

File diff suppressed because it is too large Load Diff

View File

@ -3,7 +3,10 @@
--- !u!78 &1
TagManager:
serializedVersion: 2
tags: []
tags:
- Anchor
- Pilz
- Zwiebel
layers:
- Default
- TransparentFX