Fix Chatbot Button and animation, add NamedPokeEvent

This commit is contained in:
Nadine Ganz 2025-08-04 17:41:41 +02:00
parent 664c3a0326
commit 3850273faf
6 changed files with 1218 additions and 1129 deletions

View File

@ -1,5 +1,19 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1109 &-8890819234432113218
AnimatorTransition:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name:
m_Conditions: []
m_DstStateMachine: {fileID: 0}
m_DstState: {fileID: 1279485650305482810}
m_Solo: 0
m_Mute: 0
m_IsExit: 0
serializedVersion: 1
--- !u!1107 &-6826851990614133435
AnimatorStateMachine:
serializedVersion: 6
@ -12,16 +26,20 @@ AnimatorStateMachine:
- serializedVersion: 1
m_State: {fileID: 7443357409726444941}
m_Position: {x: 390, y: -60, z: 0}
- serializedVersion: 1
m_State: {fileID: 1279485650305482810}
m_Position: {x: 256.1576, y: 206.7081, z: 0}
m_ChildStateMachines: []
m_AnyStateTransitions: []
m_EntryTransitions: []
m_EntryTransitions:
- {fileID: -8890819234432113218}
m_StateMachineTransitions: {}
m_StateMachineBehaviours: []
m_AnyStatePosition: {x: 50, y: 20, z: 0}
m_EntryPosition: {x: 50, y: 120, z: 0}
m_ExitPosition: {x: 800, y: 120, z: 0}
m_ParentStateMachinePosition: {x: 800, y: 20, z: 0}
m_DefaultState: {fileID: 7443357409726444941}
m_DefaultState: {fileID: 1279485650305482810}
--- !u!91 &9100000
AnimatorController:
m_ObjectHideFlags: 0
@ -44,6 +62,32 @@ AnimatorController:
m_IKPass: 0
m_SyncedLayerAffectsTiming: 0
m_Controller: {fileID: 9100000}
--- !u!1102 &1279485650305482810
AnimatorState:
serializedVersion: 6
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: New State
m_Speed: 1
m_CycleOffset: 0
m_Transitions: []
m_StateMachineBehaviours: []
m_Position: {x: 50, y: 50, z: 0}
m_IKOnFeet: 0
m_WriteDefaultValues: 1
m_Mirror: 0
m_SpeedParameterActive: 0
m_MirrorParameterActive: 0
m_CycleOffsetParameterActive: 0
m_TimeParameterActive: 0
m_Motion: {fileID: 0}
m_Tag:
m_SpeedParameter:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:
--- !u!1102 &7443357409726444941
AnimatorState:
serializedVersion: 6

View File

@ -39,28 +39,6 @@ MonoBehaviour:
m_bufferingTime: 0.1
m_ClipProperties:
volume: 1
--- !u!114 &-6595666901140017512
MonoBehaviour:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 030f85c3f73729f4f976f66ffb23b875, type: 3}
m_Name: AnimationPlayableAsset
m_EditorClassIdentifier:
m_Clip: {fileID: 7400000, guid: 131b9f16ec192cc468b99f7a3167dccb, type: 2}
m_Position: {x: 0, y: 0, z: 0}
m_EulerAngles: {x: 0, y: 0, z: 0}
m_UseTrackMatchFields: 1
m_MatchTargetFields: 63
m_RemoveStartOffset: 1
m_ApplyFootIK: 1
m_Loop: 2
m_Version: 1
m_Rotation: {x: 0, y: 0, z: 0, w: 1}
--- !u!114 &-4537728452854097180
MonoBehaviour:
m_ObjectHideFlags: 1
@ -78,116 +56,6 @@ MonoBehaviour:
m_bufferingTime: 0.1
m_ClipProperties:
volume: 1
--- !u!114 &-4023122238063795050
MonoBehaviour:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: d21dcc2386d650c4597f3633c75a1f98, type: 3}
m_Name: Animation Track
m_EditorClassIdentifier:
m_Version: 3
m_AnimClip: {fileID: 0}
m_Locked: 0
m_Muted: 0
m_CustomPlayableFullTypename:
m_Curves: {fileID: 0}
m_Parent: {fileID: 11400000}
m_Children: []
m_Clips:
- m_Version: 1
m_Start: 0
m_ClipIn: 0
m_Asset: {fileID: -6595666901140017512}
m_Duration: 1
m_TimeScale: 1
m_ParentTrack: {fileID: -4023122238063795050}
m_EaseInDuration: 0
m_EaseOutDuration: 0
m_BlendInDuration: -1
m_BlendOutDuration: -1
m_MixInCurve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 0
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0
outWeight: 0
- serializedVersion: 3
time: 1
value: 1
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0
outWeight: 0
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
m_MixOutCurve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0
outWeight: 0
- serializedVersion: 3
time: 1
value: 0
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0
outWeight: 0
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
m_BlendInCurveMode: 0
m_BlendOutCurveMode: 0
m_ExposedParameterNames: []
m_AnimationCurves: {fileID: 0}
m_Recordable: 0
m_PostExtrapolationMode: 1
m_PreExtrapolationMode: 1
m_PostExtrapolationTime: Infinity
m_PreExtrapolationTime: 0
m_DisplayName: Animation Chatbot Button Pressed
m_Markers:
m_Objects: []
m_InfiniteClipPreExtrapolation: 0
m_InfiniteClipPostExtrapolation: 0
m_InfiniteClipOffsetPosition: {x: 0, y: 0, z: 0}
m_InfiniteClipOffsetEulerAngles: {x: 0, y: 0, z: 0}
m_InfiniteClipTimeOffset: 0
m_InfiniteClipRemoveOffset: 0
m_InfiniteClipApplyFootIK: 1
mInfiniteClipLoop: 0
m_MatchTargetFields: 63
m_Position: {x: 0, y: 0, z: 0}
m_EulerAngles: {x: 0, y: 0, z: 0}
m_AvatarMask: {fileID: 0}
m_ApplyAvatarMask: 1
m_TrackOffset: 0
m_InfiniteClip: {fileID: 0}
m_OpenClipOffsetRotation: {x: 0, y: 0, z: 0, w: 1}
m_Rotation: {x: 0, y: 0, z: 0, w: 1}
m_ApplyOffsets: 0
--- !u!114 &-1844958133074723494
MonoBehaviour:
m_ObjectHideFlags: 1
@ -210,7 +78,7 @@ MonoBehaviour:
m_Children: []
m_Clips:
- m_Version: 1
m_Start: 1
m_Start: 0
m_ClipIn: 0
m_Asset: {fileID: -9186318179644760575}
m_Duration: 1
@ -276,7 +144,7 @@ MonoBehaviour:
m_PostExtrapolationMode: 1
m_PreExtrapolationMode: 1
m_PostExtrapolationTime: Infinity
m_PreExtrapolationTime: 1
m_PreExtrapolationTime: 0
m_DisplayName: Animation ChatbotLaser
m_Markers:
m_Objects: []
@ -298,23 +166,6 @@ MonoBehaviour:
m_OpenClipOffsetRotation: {x: 0, y: 0, z: 0, w: 1}
m_Rotation: {x: 0, y: 0, z: 0, w: 1}
m_ApplyOffsets: 0
--- !u!114 &-919076065122573310
MonoBehaviour:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 4f10dd60657c6004587f237a7e90f8e4, type: 3}
m_Name: AudioPlayableAsset
m_EditorClassIdentifier:
m_Clip: {fileID: 8300000, guid: eeedbe7f2e6ceab4cb48acf9463afc3e, type: 3}
m_Loop: 0
m_bufferingTime: 0.1
m_ClipProperties:
volume: 1
--- !u!114 &-388529976960671980
MonoBehaviour:
m_ObjectHideFlags: 1
@ -337,7 +188,7 @@ MonoBehaviour:
m_Children: []
m_Clips:
- m_Version: 1
m_Start: 2
m_Start: 1.0000000000000013
m_ClipIn: 0
m_Asset: {fileID: 4959354551746578753}
m_Duration: 1
@ -385,10 +236,10 @@ MonoBehaviour:
m_PostExtrapolationMode: 1
m_PreExtrapolationMode: 1
m_PostExtrapolationTime: 0
m_PreExtrapolationTime: 2
m_PreExtrapolationTime: 1.0000000000000013
m_DisplayName: Animation Chatbot Popup
- m_Version: 1
m_Start: 3
m_Start: 2.000000000000002
m_ClipIn: 0
m_Asset: {fileID: 3944277808979299471}
m_Duration: 2
@ -489,10 +340,8 @@ MonoBehaviour:
m_EditorClassIdentifier:
m_Version: 0
m_Tracks:
- {fileID: -4023122238063795050}
- {fileID: -1844958133074723494}
- {fileID: -388529976960671980}
- {fileID: 5507569759037005138}
- {fileID: 3818191983791096580}
- {fileID: 6311139388440893090}
m_FixedDuration: 5.433333333333334
@ -558,7 +407,7 @@ MonoBehaviour:
m_Children: []
m_Clips:
- m_Version: 1
m_Start: 1
m_Start: 0
m_ClipIn: 0
m_Asset: {fileID: -4537728452854097180}
m_Duration: 1.2291666666666667
@ -567,7 +416,7 @@ MonoBehaviour:
m_EaseInDuration: 0
m_EaseOutDuration: 0
m_BlendInDuration: -1
m_BlendOutDuration: 0.029166666666666785
m_BlendOutDuration: 0.029166666666665675
m_MixInCurve:
serializedVersion: 2
m_Curve:
@ -594,7 +443,25 @@ MonoBehaviour:
m_RotationOrder: 4
m_MixOutCurve:
serializedVersion: 2
m_Curve: []
m_Curve:
- serializedVersion: 3
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0
outWeight: 0
- serializedVersion: 3
time: 1
value: 0
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0
outWeight: 0
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
@ -609,7 +476,7 @@ MonoBehaviour:
m_PreExtrapolationTime: 0
m_DisplayName: 588251__romeo_kaleikau__power-up-regeneration-sfx
- m_Version: 1
m_Start: 2.2
m_Start: 1.200000000000001
m_ClipIn: 0
m_Asset: {fileID: -80259869817880582}
m_Duration: 2.216666666666667
@ -617,17 +484,53 @@ MonoBehaviour:
m_ParentTrack: {fileID: 3818191983791096580}
m_EaseInDuration: 0
m_EaseOutDuration: 0
m_BlendInDuration: 0.029166666666666785
m_BlendInDuration: 0.029166666666665675
m_BlendOutDuration: 1.2166666666666668
m_MixInCurve:
serializedVersion: 2
m_Curve: []
m_Curve:
- serializedVersion: 3
time: 0
value: 0
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0
outWeight: 0
- serializedVersion: 3
time: 1
value: 1
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0
outWeight: 0
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
m_MixOutCurve:
serializedVersion: 2
m_Curve: []
m_Curve:
- serializedVersion: 3
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0
outWeight: 0
- serializedVersion: 3
time: 1
value: 0
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0
outWeight: 0
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
@ -642,7 +545,7 @@ MonoBehaviour:
m_PreExtrapolationTime: 0
m_DisplayName: 609328__ninjasharkstudios__engine-power-up_1
- m_Version: 1
m_Start: 3.2
m_Start: 2.200000000000001
m_ClipIn: 0
m_Asset: {fileID: -8950308714646898373}
m_Duration: 23.04
@ -654,7 +557,25 @@ MonoBehaviour:
m_BlendOutDuration: -1
m_MixInCurve:
serializedVersion: 2
m_Curve: []
m_Curve:
- serializedVersion: 3
time: 0
value: 0
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0
outWeight: 0
- serializedVersion: 3
time: 1
value: 1
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0
outWeight: 0
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
@ -742,102 +663,6 @@ MonoBehaviour:
m_Loop: 0
m_Version: 1
m_Rotation: {x: 0, y: 0, z: 0, w: 1}
--- !u!114 &5507569759037005138
MonoBehaviour:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 8b22792c3b570444eb18cb78c2af3a74, type: 3}
m_Name: Audio Track
m_EditorClassIdentifier:
m_Version: 3
m_AnimClip: {fileID: 0}
m_Locked: 0
m_Muted: 0
m_CustomPlayableFullTypename:
m_Curves: {fileID: 0}
m_Parent: {fileID: 11400000}
m_Children: []
m_Clips:
- m_Version: 1
m_Start: 0.23333333333333334
m_ClipIn: 0
m_Asset: {fileID: -919076065122573310}
m_Duration: 0.41128747795414494
m_TimeScale: 0.8999999999999999
m_ParentTrack: {fileID: 5507569759037005138}
m_EaseInDuration: 0
m_EaseOutDuration: 0
m_BlendInDuration: -1
m_BlendOutDuration: -1
m_MixInCurve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 0
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0
outWeight: 0
- serializedVersion: 3
time: 1
value: 1
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0
outWeight: 0
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
m_MixOutCurve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0
outWeight: 0
- serializedVersion: 3
time: 1
value: 0
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0
outWeight: 0
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
m_BlendInCurveMode: 0
m_BlendOutCurveMode: 0
m_ExposedParameterNames: []
m_AnimationCurves: {fileID: 0}
m_Recordable: 0
m_PostExtrapolationMode: 0
m_PreExtrapolationMode: 0
m_PostExtrapolationTime: 0
m_PreExtrapolationTime: 0
m_DisplayName: 265189__simonjsounds__clickswitch-05
m_Markers:
m_Objects: []
m_TrackProperties:
volume: 1
stereoPan: 0
spatialBlend: 0
--- !u!114 &6311139388440893090
MonoBehaviour:
m_ObjectHideFlags: 1

View File

@ -421,9 +421,8 @@ Tree("26_Castello_Castelli_di_Bellinzona_Geschichte_Castelli") {
BTC.Run("MediaPlayer.VIDEOS.ChatbotBurgenF1")
BTC.Run("MediaPlayer.VIDEOS.ChatbotBurgenFidle_02")
// TODO: U druckt Knopf
BTC.Wait(3)
BTC.Run("Timeline.TIMELINES.TimelineCastelloCh_atbot_Start")
// U druckt Knopf
BTC.Run("NamedPokeEvent.INTERACTABLES.ChatbotButton")
BTC.Hide("MediaPlayer.VIDEOS.ChatbotBurgenFidle_02")
BTC.Run("MediaPlayer.VIDEOS.ChatbotBurgenF3")

View File

@ -0,0 +1,147 @@
//============= 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(NamedPokeEvent))]
public class NamedPokeEventInspector : ComponentHandlerInspector
{
}
#endif
public class NamedPokeEvent : ComponentHandler
{
public override string TypeLabel()
{
return "NamedPokeEvent";
}
public override string ContentLabel()
{
UpdateComponent();
return objName;
}
public override void UpdateComponent()
{
base.UpdateComponent();
if (GetComponent<XRSimpleInteractable>())
{
GetComponent<XRSimpleInteractable>().selectEntered.AddListener(SelectEnterEventHandler);
GetComponent<XRSimpleInteractable>().selectExited.AddListener(SelectExitEventHandler);
}
else
{
Debug.LogWarning($"NamedPokeEvent '{gameObject.name}' could not attach poking event (missing XR Simple Interactable?)");
}
}
public string objName = "PokeObjXY";
private bool selectEnterTriggered = false;
private bool selectExitTriggered = false;
private bool _abortEventListener = false;
private void SelectEnterEventHandler(SelectEnterEventArgs args)
{
selectEnterTriggered = true;
}
private void SelectExitEventHandler(SelectExitEventArgs args)
{
selectExitTriggered = true;
}
public override string titleText
{
get
{
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 and Exit Event", $"BTC.Run(\"{roomId}\", \"{gameObject.name}\")"},
};
}
}
public override void Run(MyBT.NodeState nodeState)
{
if (nodeState == NodeState.FirstRun)
{
// reset event trigger at start
selectEnterTriggered = false;
}
if (nodeState == NodeState.Aborting)
{
selectEnterTriggered = false;
}
if (selectEnterTriggered)
{
Debug.Log($"NamedPokeEvent: Select entered event from {gameObject.name} fired.");
Task.SetSucceeded();
return;
}
if (_abortEventListener)
{
Task.SetFailed();
Debug.Log($"NamedPokeEvent on {gameObject.name} failed.");
_abortEventListener = false;
return;
}
}
public override void ListenToEvent(MyBT.NodeState nodeState)
{
if (nodeState == NodeState.FirstRun)
{
// reset event trigger at start
selectExitTriggered = false;
Debug.Log("Enter ListenToEvent");
}
if (nodeState == NodeState.Aborting)
{
selectExitTriggered = false;
}
if (nodeState == NodeState.Running)
{
if (selectExitTriggered)
{
Debug.Log($"NamedPokeEvent: Select exited event from {gameObject.name} fired.");
Task.SetSucceeded();
return;
}
}
}
public override void AbortEventListener(MyBT.NodeState nodeState)
{
if (nodeState == NodeState.FirstRun)
{
_abortEventListener = true;
Task.SetSucceeded();
return;
}
}
}

View File

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

File diff suppressed because it is too large Load Diff