From 21e186f75b504d832d9c7bef0456edd7d5d3155e Mon Sep 17 00:00:00 2001 From: chai Date: Wed, 8 Sep 2021 10:52:35 +0800 Subject: +behavior design --- .../Runtime/Basic Tasks/Debug/DrawLine.cs | 36 ++++++++++ .../Runtime/Basic Tasks/Debug/DrawLine.cs.meta | 8 +++ .../Runtime/Basic Tasks/Debug/DrawRay.cs | 30 +++++++++ .../Runtime/Basic Tasks/Debug/DrawRay.cs.meta | 8 +++ .../Runtime/Basic Tasks/Debug/LogFormat.cs | 76 ++++++++++++++++++++++ .../Runtime/Basic Tasks/Debug/LogFormat.cs.meta | 8 +++ .../Runtime/Basic Tasks/Debug/LogValue.cs | 24 +++++++ .../Runtime/Basic Tasks/Debug/LogValue.cs.meta | 8 +++ 8 files changed, 198 insertions(+) create mode 100644 Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/Debug/DrawLine.cs create mode 100644 Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/Debug/DrawLine.cs.meta create mode 100644 Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/Debug/DrawRay.cs create mode 100644 Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/Debug/DrawRay.cs.meta create mode 100644 Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/Debug/LogFormat.cs create mode 100644 Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/Debug/LogFormat.cs.meta create mode 100644 Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/Debug/LogValue.cs create mode 100644 Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/Debug/LogValue.cs.meta (limited to 'Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/Debug') diff --git a/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/Debug/DrawLine.cs b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/Debug/DrawLine.cs new file mode 100644 index 00000000..c4bc3464 --- /dev/null +++ b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/Debug/DrawLine.cs @@ -0,0 +1,36 @@ +using UnityEngine; + +namespace BehaviorDesigner.Runtime.Tasks.Basic.UnityDebug +{ + [TaskCategory("Basic/Debug")] + [TaskDescription("Draws a debug line")] + public class DrawLine : Action + { + [Tooltip("The start position")] + public SharedVector3 start; + [Tooltip("The end position")] + public SharedVector3 end; + [Tooltip("The color")] + public SharedColor color = Color.white; + [Tooltip("Duration the line will be visible for in seconds.\nDefault: 0 means 1 frame.")] + public SharedFloat duration; + [Tooltip("Whether the line should show through world geometry.")] + public SharedBool depthTest = true; + + public override TaskStatus OnUpdate() + { + Debug.DrawLine(start.Value, end.Value, color.Value, duration.Value, depthTest.Value); + + return TaskStatus.Success; + } + + public override void OnReset() + { + start = Vector3.zero; + end = Vector3.zero; + color = Color.white; + duration = 0f; + depthTest = true; + } + } +} \ No newline at end of file diff --git a/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/Debug/DrawLine.cs.meta b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/Debug/DrawLine.cs.meta new file mode 100644 index 00000000..224373d4 --- /dev/null +++ b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/Debug/DrawLine.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 66a533f4f027ab44bb35e498d761ce50 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/Debug/DrawRay.cs b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/Debug/DrawRay.cs new file mode 100644 index 00000000..81aa823f --- /dev/null +++ b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/Debug/DrawRay.cs @@ -0,0 +1,30 @@ +using UnityEngine; + +namespace BehaviorDesigner.Runtime.Tasks.Basic.UnityDebug +{ + [TaskCategory("Basic/Debug")] + [TaskDescription("Draws a debug ray")] + public class DrawRay : Action + { + [Tooltip("The position")] + public SharedVector3 start; + [Tooltip("The direction")] + public SharedVector3 direction; + [Tooltip("The color")] + public SharedColor color = Color.white; + + public override TaskStatus OnUpdate() + { + Debug.DrawRay(start.Value, direction.Value, color.Value); + + return TaskStatus.Success; + } + + public override void OnReset() + { + start = Vector3.zero; + direction = Vector3.zero; + color = Color.white; + } + } +} \ No newline at end of file diff --git a/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/Debug/DrawRay.cs.meta b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/Debug/DrawRay.cs.meta new file mode 100644 index 00000000..8490bb34 --- /dev/null +++ b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/Debug/DrawRay.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 786ac0c09ce982e43b444670fdfe4c74 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/Debug/LogFormat.cs b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/Debug/LogFormat.cs new file mode 100644 index 00000000..00f96bba --- /dev/null +++ b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/Debug/LogFormat.cs @@ -0,0 +1,76 @@ +using UnityEngine; + +namespace BehaviorDesigner.Runtime.Tasks.Basic.UnityDebug +{ + [TaskDescription("LogFormat is analgous to Debug.LogFormat().\n" + + "It takes format string, substitutes arguments supplied a '{0-4}' and returns success.\n" + + "Any fields or arguments not supplied are ignored." + + "It can be used for debugging.")] + [TaskIcon("{SkinColor}LogIcon.png")] + public class LogFormat : Action + { + [Tooltip("Text format with {0}, {1}, etc")] + public SharedString textFormat; + + [Tooltip("Is this text an error?")] + public SharedBool logError; + + public SharedVariable arg0; + public SharedVariable arg1; + public SharedVariable arg2; + public SharedVariable arg3; + + public override TaskStatus OnUpdate() + { + var paramsArray = buildParamsArray(); + // Log the text and return success + if (logError.Value) { + Debug.LogErrorFormat(textFormat.Value, paramsArray); + } else { + Debug.LogFormat(textFormat.Value, paramsArray); + } + return TaskStatus.Success; + } + + private object[] buildParamsArray() { + object[] paramsArray; + if (isValid(arg3)) { + paramsArray = new object[4]; + paramsArray[3] = arg3.GetValue(); + paramsArray[2] = arg2.GetValue(); + paramsArray[1] = arg1.GetValue(); + paramsArray[0] = arg0.GetValue(); + } else if (isValid(arg2)) { + paramsArray = new object[3]; + paramsArray[2] = arg2.GetValue(); + paramsArray[1] = arg1.GetValue(); + paramsArray[0] = arg0.GetValue(); + } else if (isValid(arg1)) { + paramsArray = new object[2]; + paramsArray[1] = arg1.GetValue(); + paramsArray[0] = arg0.GetValue(); + } else if (isValid(arg0)) { + paramsArray = new object[1]; + paramsArray[0] = arg0.GetValue(); + } else { + return null; + } + return paramsArray; + } + + private bool isValid(SharedVariable sv) { + return null != sv && !sv.IsNone; + } + + public override void OnReset() + { + // Reset the properties back to their original values + textFormat = string.Empty; + logError = false; + arg0 = null; + arg1 = null; + arg2 = null; + arg3 = null; + } + } +} \ No newline at end of file diff --git a/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/Debug/LogFormat.cs.meta b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/Debug/LogFormat.cs.meta new file mode 100644 index 00000000..65c27cda --- /dev/null +++ b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/Debug/LogFormat.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 70765819b419e8a45b326e92edf17ef5 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/Debug/LogValue.cs b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/Debug/LogValue.cs new file mode 100644 index 00000000..73605da8 --- /dev/null +++ b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/Debug/LogValue.cs @@ -0,0 +1,24 @@ +using UnityEngine; + +namespace BehaviorDesigner.Runtime.Tasks.Basic.UnityDebug +{ + [TaskCategory("Basic/Debug")] + [TaskDescription("Log a variable value.")] + public class LogValue : Action + { + [Tooltip("The variable to output")] + public SharedGenericVariable variable; + + public override TaskStatus OnUpdate() + { + Debug.Log(variable.Value.value.GetValue()); + + return TaskStatus.Success; + } + + public override void OnReset() + { + variable = null; + } + } +} \ No newline at end of file diff --git a/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/Debug/LogValue.cs.meta b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/Debug/LogValue.cs.meta new file mode 100644 index 00000000..03ab4247 --- /dev/null +++ b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/Debug/LogValue.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c50983a88995f4f4197f7b39ca796667 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: -- cgit v1.1-26-g67d0