//============= 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.UI; using MyBT; using UnityEngine.Video; #if UNITY_EDITOR using UnityEditor; [CustomEditor(typeof(NamedRigidbody))] public class NamedRigidbodyInspector : ComponentHandlerInspector { } #endif [System.Serializable] public class NamedRigidbody : ComponentHandler { public override string TypeLabel () { return "Rigidbody"; } public override string ContentLabel() { UpdateComponent(); return ""; } public override void UpdateComponent() { base.UpdateComponent(); rigidbodyComponent = GetComponent(); } public Rigidbody rigidbodyComponent; public Vector3 startPosition; public override string titleText { get { return "Run: Set Rigidbody Physically Active"; } } public override string[][] helpText { get { return new string[][] { new string[] {"Run", "Set Physically Active", $"BTC.Run(\"{roomId}\", \"{gameObject.name}\")"} }; } } public override void Start() { startPosition = transform.position; } public override void Run(MyBT.NodeState nodeState) { // when aborting if (nodeState == NodeState.Aborting) { rigidbodyComponent.isKinematic = true; transform.position = startPosition; return; } // at start if (nodeState == NodeState.FirstRun) { // reset event trigger rigidbodyComponent.isKinematic = false; } // during runtime if (nodeState == NodeState.Running) { } } }