From e45d283ece0450e8dac6afc0ed56610b3947ccae Mon Sep 17 00:00:00 2001 From: Christopher Date: Tue, 27 Sep 2016 14:54:48 +0100 Subject: [PATCH 1/7] Added Writer signals --- Assets/Fungus/Scripts/Components/Writer.cs | 1 + Assets/Fungus/Scripts/Signals.meta | 9 + .../Fungus/Scripts/Signals/WriterSignals.cs | 23 + .../Scripts/Signals/WriterSignals.cs.meta | 12 + Assets/Tests/Commands/FailTest.cs | 3 +- Assets/Tests/Commands/PassTest.cs | 3 +- Assets/Tests/Signals.meta | 9 + Assets/Tests/Signals/SignalsTests.unity | 716 ++++++++++++++++++ Assets/Tests/Signals/SignalsTests.unity.meta | 8 + Assets/Tests/Signals/WriterSignalsTester.cs | 40 + .../Tests/Signals/WriterSignalsTester.cs.meta | 12 + 11 files changed, 832 insertions(+), 4 deletions(-) create mode 100644 Assets/Fungus/Scripts/Signals.meta create mode 100644 Assets/Fungus/Scripts/Signals/WriterSignals.cs create mode 100644 Assets/Fungus/Scripts/Signals/WriterSignals.cs.meta create mode 100644 Assets/Tests/Signals.meta create mode 100644 Assets/Tests/Signals/SignalsTests.unity create mode 100644 Assets/Tests/Signals/SignalsTests.unity.meta create mode 100644 Assets/Tests/Signals/WriterSignalsTester.cs create mode 100644 Assets/Tests/Signals/WriterSignalsTester.cs.meta diff --git a/Assets/Fungus/Scripts/Components/Writer.cs b/Assets/Fungus/Scripts/Components/Writer.cs index a23d8b13..93fd0a95 100644 --- a/Assets/Fungus/Scripts/Components/Writer.cs +++ b/Assets/Fungus/Scripts/Components/Writer.cs @@ -234,6 +234,7 @@ namespace Fungus foreach (TextTagToken token in tokens) { + WriterSignals.DoTextTagToken(this, token); switch (token.type) { diff --git a/Assets/Fungus/Scripts/Signals.meta b/Assets/Fungus/Scripts/Signals.meta new file mode 100644 index 00000000..a6a5b714 --- /dev/null +++ b/Assets/Fungus/Scripts/Signals.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: c5af9b1dcfc3a4963add98929d9386c0 +folderAsset: yes +timeCreated: 1474968754 +licenseType: Free +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Fungus/Scripts/Signals/WriterSignals.cs b/Assets/Fungus/Scripts/Signals/WriterSignals.cs new file mode 100644 index 00000000..bedff3dd --- /dev/null +++ b/Assets/Fungus/Scripts/Signals/WriterSignals.cs @@ -0,0 +1,23 @@ +using UnityEngine; +using System.Collections; +using Fungus.Utils; + +namespace Fungus +{ + /// + /// Writer event signalling system. + /// + public static class WriterSignals + { + #region Public members + + /// + /// TextTagToken signal. Sent for each unique token when writing text. + /// + public delegate void TextTagTokenHandler(Writer writer, TextTagToken token); + public static event TextTagTokenHandler OnTextTagToken; + public static void DoTextTagToken(Writer writer, TextTagToken token){ if(OnTextTagToken != null) OnTextTagToken(writer, token); } + + #endregion + } +} diff --git a/Assets/Fungus/Scripts/Signals/WriterSignals.cs.meta b/Assets/Fungus/Scripts/Signals/WriterSignals.cs.meta new file mode 100644 index 00000000..a4058cc1 --- /dev/null +++ b/Assets/Fungus/Scripts/Signals/WriterSignals.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: d8d3d56bc3bd9488d8e6e30b9bf99fc4 +timeCreated: 1474970135 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Tests/Commands/FailTest.cs b/Assets/Tests/Commands/FailTest.cs index e6408041..ccf546e7 100644 --- a/Assets/Tests/Commands/FailTest.cs +++ b/Assets/Tests/Commands/FailTest.cs @@ -6,10 +6,10 @@ using System.Collections; namespace Fungus { - [CommandInfo("Tests", "Fail", "Fails the current integration test")] + [AddComponentMenu("")] public class FailTest : Command { public string failMessage; @@ -21,5 +21,4 @@ namespace Fungus Continue(); } } - } \ No newline at end of file diff --git a/Assets/Tests/Commands/PassTest.cs b/Assets/Tests/Commands/PassTest.cs index 394ceb3c..b84e6cc3 100644 --- a/Assets/Tests/Commands/PassTest.cs +++ b/Assets/Tests/Commands/PassTest.cs @@ -6,10 +6,10 @@ using System.Collections; namespace Fungus { - [CommandInfo("Tests", "Pass", "Passes the current integration test")] + [AddComponentMenu("")] public class PassTest : Command { public override void OnEnter() @@ -19,5 +19,4 @@ namespace Fungus Continue(); } } - } \ No newline at end of file diff --git a/Assets/Tests/Signals.meta b/Assets/Tests/Signals.meta new file mode 100644 index 00000000..14a1dee1 --- /dev/null +++ b/Assets/Tests/Signals.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 2e1206d3bce424ca8a9b82f05c69335d +folderAsset: yes +timeCreated: 1474982411 +licenseType: Free +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Tests/Signals/SignalsTests.unity b/Assets/Tests/Signals/SignalsTests.unity new file mode 100644 index 00000000..720ca45f --- /dev/null +++ b/Assets/Tests/Signals/SignalsTests.unity @@ -0,0 +1,716 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!29 &1 +SceneSettings: + m_ObjectHideFlags: 0 + m_PVSData: + m_PVSObjectsArray: [] + m_PVSPortalsArray: [] + m_OcclusionBakeSettings: + smallestOccluder: 5 + smallestHole: 0.25 + backfaceThreshold: 100 +--- !u!104 &2 +RenderSettings: + m_ObjectHideFlags: 0 + serializedVersion: 7 + m_Fog: 0 + m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_FogMode: 3 + m_FogDensity: 0.01 + m_LinearFogStart: 0 + m_LinearFogEnd: 300 + m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} + m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} + m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} + m_AmbientIntensity: 1 + m_AmbientMode: 3 + m_SkyboxMaterial: {fileID: 0} + m_HaloStrength: 0.5 + m_FlareStrength: 1 + m_FlareFadeSpeed: 3 + m_HaloTexture: {fileID: 0} + m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} + m_DefaultReflectionMode: 0 + m_DefaultReflectionResolution: 128 + m_ReflectionBounces: 1 + m_ReflectionIntensity: 1 + m_CustomReflection: {fileID: 0} + m_Sun: {fileID: 0} + m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1} +--- !u!157 &3 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 7 + m_GIWorkflowMode: 1 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_TemporalCoherenceThreshold: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 0 + m_EnableRealtimeLightmaps: 0 + m_LightmapEditorSettings: + serializedVersion: 4 + m_Resolution: 2 + m_BakeResolution: 40 + m_TextureWidth: 1024 + m_TextureHeight: 1024 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_Padding: 2 + m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 + m_TextureCompression: 1 + m_DirectLightInLightProbes: 1 + m_FinalGather: 0 + m_FinalGatherFiltering: 1 + m_FinalGatherRayCount: 256 + m_ReflectionCompression: 2 + m_LightingDataAsset: {fileID: 0} + m_RuntimeCPUUsage: 25 +--- !u!196 &4 +NavMeshSettings: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_BuildSettings: + serializedVersion: 2 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.4 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + accuratePlacement: 0 + minRegionArea: 2 + cellSize: 0.16666667 + manualCellSize: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &41796120 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 41796123} + - 222: {fileID: 41796122} + - 114: {fileID: 41796121} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &41796121 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 41796120} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 32 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 0 + m_MaxSize: 40 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: New Text +--- !u!222 &41796122 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 41796120} +--- !u!224 &41796123 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 41796120} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1210976074} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 96} + m_Pivot: {x: 0, y: 1} +--- !u!1 &147434164 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 147434166} + - 114: {fileID: 147434165} + m_Layer: 0 + m_Name: WriterSignalsTest + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &147434165 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 147434164} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b1dba0b27b0864740a8720e920aa88c0, type: 3} + m_Name: + m_EditorClassIdentifier: + timeout: 5 + ignored: 0 + succeedAfterAllAssertionsAreExecuted: 0 + expectException: 0 + expectedExceptionList: + succeedWhenExceptionIsThrown: 0 + includedPlatforms: -1 + platformsToIgnore: [] + dynamic: 0 + dynamicTypeName: +--- !u!4 &147434166 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 147434164} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1201908856} + - {fileID: 1210976074} + - {fileID: 411939900} + m_Father: {fileID: 0} + m_RootOrder: 2 +--- !u!1 &286067095 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 286067097} + - 114: {fileID: 286067096} + m_Layer: 0 + m_Name: _FungusState + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &286067096 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 286067095} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 61dddfdc5e0e44ca298d8f46f7f5a915, type: 3} + m_Name: + m_EditorClassIdentifier: + selectedFlowchart: {fileID: 411939904} +--- !u!4 &286067097 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 286067095} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 1 +--- !u!1 &411939899 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 142980, guid: 5e7fbc8d4eb714b279eeeef2262c1e1a, type: 2} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 411939900} + - 114: {fileID: 411939904} + - 114: {fileID: 411939903} + - 114: {fileID: 411939902} + - 114: {fileID: 411939901} + m_Layer: 0 + m_Name: Flowchart + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &411939900 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 467082, guid: 5e7fbc8d4eb714b279eeeef2262c1e1a, type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 411939899} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 147434166} + m_RootOrder: 2 +--- !u!114 &411939901 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 411939899} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ad2261dbe44de43a980e6f7c77c88f7f, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 1 + indentLevel: 0 + textObject: {fileID: 41796120} + text: + stringRef: {fileID: 0} + stringVal: '{b}hello{/b}' + description: + clearText: 1 + waitUntilFinished: 1 + textColor: 0 + setAlpha: + floatRef: {fileID: 0} + floatVal: 1 + setColor: + colorRef: {fileID: 0} + colorVal: {r: 1, g: 1, b: 1, a: 1} +--- !u!114 &411939902 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_PrefabParentObject: {fileID: 11462346, guid: 5e7fbc8d4eb714b279eeeef2262c1e1a, + type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 411939899} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d2f6487d21a03404cb21b245f0242e79, type: 3} + m_Name: + m_EditorClassIdentifier: + parentBlock: {fileID: 411939903} +--- !u!114 &411939903 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_PrefabParentObject: {fileID: 11433304, guid: 5e7fbc8d4eb714b279eeeef2262c1e1a, + type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 411939899} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3d3d73aef2cfc4f51abf34ac00241f60, type: 3} + m_Name: + m_EditorClassIdentifier: + nodeRect: + serializedVersion: 2 + x: 68 + y: 70 + width: 120 + height: 40 + itemId: 0 + blockName: Start + description: + eventHandler: {fileID: 411939902} + commandList: + - {fileID: 411939901} +--- !u!114 &411939904 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11430050, guid: 5e7fbc8d4eb714b279eeeef2262c1e1a, + type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 411939899} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7a334fe2ffb574b3583ff3b18b4792d3, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 1 + scrollPos: {x: 0, y: 0} + variablesScrollPos: {x: 0, y: 0} + variablesExpanded: 1 + blockViewHeight: 400 + zoom: 1 + scrollViewRect: + serializedVersion: 2 + x: -343 + y: -340 + width: 1114 + height: 859 + selectedBlock: {fileID: 0} + selectedCommands: [] + variables: [] + description: Check that Writer signals are sending correctly + stepPause: 0 + colorCommands: 1 + hideComponents: 1 + saveSelection: 1 + localizationId: + showLineNumbers: 0 + hideCommands: [] + luaEnvironment: {fileID: 0} + luaBindingName: flowchart +--- !u!1 &597475644 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 597475649} + - 20: {fileID: 597475648} + - 92: {fileID: 597475647} + - 124: {fileID: 597475646} + - 81: {fileID: 597475645} + m_Layer: 0 + m_Name: Main Camera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!81 &597475645 +AudioListener: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 597475644} + m_Enabled: 1 +--- !u!124 &597475646 +Behaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 597475644} + m_Enabled: 1 +--- !u!92 &597475647 +Behaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 597475644} + m_Enabled: 1 +--- !u!20 &597475648 +Camera: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 597475644} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 60 + orthographic: 1 + orthographic size: 5 + m_Depth: -1 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 + m_StereoMirrorMode: 0 +--- !u!4 &597475649 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 597475644} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 +--- !u!1 &759754969 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 759754972} + - 114: {fileID: 759754971} + - 114: {fileID: 759754970} + m_Layer: 0 + m_Name: EventSystem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &759754970 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 759754969} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1077351063, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalAxis: Horizontal + m_VerticalAxis: Vertical + m_SubmitButton: Submit + m_CancelButton: Cancel + m_InputActionsPerSecond: 10 + m_RepeatDelay: 0.5 + m_ForceModuleActive: 0 +--- !u!114 &759754971 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 759754969} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -619905303, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_FirstSelected: {fileID: 0} + m_sendNavigationEvents: 1 + m_DragThreshold: 5 +--- !u!4 &759754972 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 759754969} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 4 +--- !u!1 &1201908855 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1201908856} + - 114: {fileID: 1201908857} + m_Layer: 0 + m_Name: WriterSignalsTester + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1201908856 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1201908855} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 147434166} + m_RootOrder: 0 +--- !u!114 &1201908857 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1201908855} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: cb302fcb509f14caf93dea80411e90ac, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &1210976073 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1210976074} + - 223: {fileID: 1210976077} + - 114: {fileID: 1210976076} + - 114: {fileID: 1210976075} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1210976074 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1210976073} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 41796123} + m_Father: {fileID: 147434166} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0} +--- !u!114 &1210976075 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1210976073} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1301386320, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &1210976076 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1210976073} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1980459831, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 0 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 +--- !u!223 &1210976077 +Canvas: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1210976073} + m_Enabled: 1 + serializedVersion: 2 + m_RenderMode: 0 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!1 &1906475156 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1906475158} + - 114: {fileID: 1906475157} + m_Layer: 0 + m_Name: TestRunner + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1906475157 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1906475156} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5c3afc1c624179749bcdecf7b0224902, type: 3} + m_Name: + m_EditorClassIdentifier: + currentTest: {fileID: 0} +--- !u!4 &1906475158 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1906475156} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 3 diff --git a/Assets/Tests/Signals/SignalsTests.unity.meta b/Assets/Tests/Signals/SignalsTests.unity.meta new file mode 100644 index 00000000..37bec2a6 --- /dev/null +++ b/Assets/Tests/Signals/SignalsTests.unity.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8acd008952a224b138b2b02baae1f7ff +timeCreated: 1474970336 +licenseType: Free +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Tests/Signals/WriterSignalsTester.cs b/Assets/Tests/Signals/WriterSignalsTester.cs new file mode 100644 index 00000000..2beae9d7 --- /dev/null +++ b/Assets/Tests/Signals/WriterSignalsTester.cs @@ -0,0 +1,40 @@ +using UnityEngine; +using Fungus.Utils; + +namespace Fungus +{ + /// + /// Checks if Writer signals are being sent correctly. + /// + [AddComponentMenu("")] + public class WriterSignalsTester : MonoBehaviour + { + int step = 0; + + void OnEnable() + { + WriterSignals.OnTextTagToken += OnTextTagToken; + } + + void OnDisable() + { + WriterSignals.OnTextTagToken -= OnTextTagToken; + } + + void OnTextTagToken(Writer writer, TextTagToken token) + { + if (step == 0 && token.type == TokenType.BoldStart) + { + step = 1; + } + else if (step == 1 && token.type == TokenType.Words) + { + step = 2; + } + else if (step == 2 && token.type == TokenType.BoldEnd) + { + IntegrationTest.Pass(); + } + } + } +} \ No newline at end of file diff --git a/Assets/Tests/Signals/WriterSignalsTester.cs.meta b/Assets/Tests/Signals/WriterSignalsTester.cs.meta new file mode 100644 index 00000000..85e40810 --- /dev/null +++ b/Assets/Tests/Signals/WriterSignalsTester.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: cb302fcb509f14caf93dea80411e90ac +timeCreated: 1474968744 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: From e1ed5eabcd45703b2e5ec2703b9aea943a7ec3db Mon Sep 17 00:00:00 2001 From: Christopher Date: Tue, 27 Sep 2016 15:00:40 +0100 Subject: [PATCH 2/7] Added token index --- Assets/Fungus/Scripts/Components/Writer.cs | 7 +++++-- Assets/Fungus/Scripts/Signals/WriterSignals.cs | 4 ++-- Assets/Tests/Signals/WriterSignalsTester.cs | 14 ++++++-------- 3 files changed, 13 insertions(+), 12 deletions(-) diff --git a/Assets/Fungus/Scripts/Components/Writer.cs b/Assets/Fungus/Scripts/Components/Writer.cs index 93fd0a95..5b9cfd9b 100644 --- a/Assets/Fungus/Scripts/Components/Writer.cs +++ b/Assets/Fungus/Scripts/Components/Writer.cs @@ -232,9 +232,12 @@ namespace Fungus TokenType previousTokenType = TokenType.Invalid; - foreach (TextTagToken token in tokens) + for (int i = 0; i < tokens.Count; ++i) { - WriterSignals.DoTextTagToken(this, token); + var token = tokens[i]; + + // Notify listeners about new token + WriterSignals.DoTextTagToken(this, token, i, tokens.Count); switch (token.type) { diff --git a/Assets/Fungus/Scripts/Signals/WriterSignals.cs b/Assets/Fungus/Scripts/Signals/WriterSignals.cs index bedff3dd..50334920 100644 --- a/Assets/Fungus/Scripts/Signals/WriterSignals.cs +++ b/Assets/Fungus/Scripts/Signals/WriterSignals.cs @@ -14,9 +14,9 @@ namespace Fungus /// /// TextTagToken signal. Sent for each unique token when writing text. /// - public delegate void TextTagTokenHandler(Writer writer, TextTagToken token); + public delegate void TextTagTokenHandler(Writer writer, TextTagToken token, int index, int maxIndex); public static event TextTagTokenHandler OnTextTagToken; - public static void DoTextTagToken(Writer writer, TextTagToken token){ if(OnTextTagToken != null) OnTextTagToken(writer, token); } + public static void DoTextTagToken(Writer writer, TextTagToken token, int index, int maxIndex){ if(OnTextTagToken != null) OnTextTagToken(writer, token, index, maxIndex); } #endregion } diff --git a/Assets/Tests/Signals/WriterSignalsTester.cs b/Assets/Tests/Signals/WriterSignalsTester.cs index 2beae9d7..7a508078 100644 --- a/Assets/Tests/Signals/WriterSignalsTester.cs +++ b/Assets/Tests/Signals/WriterSignalsTester.cs @@ -9,8 +9,6 @@ namespace Fungus [AddComponentMenu("")] public class WriterSignalsTester : MonoBehaviour { - int step = 0; - void OnEnable() { WriterSignals.OnTextTagToken += OnTextTagToken; @@ -21,17 +19,17 @@ namespace Fungus WriterSignals.OnTextTagToken -= OnTextTagToken; } - void OnTextTagToken(Writer writer, TextTagToken token) + void OnTextTagToken(Writer writer, TextTagToken token, int index, int maxIndex) { - if (step == 0 && token.type == TokenType.BoldStart) + if (index == 0 && token.type != TokenType.BoldStart) { - step = 1; + IntegrationTest.Fail(); } - else if (step == 1 && token.type == TokenType.Words) + else if (index == 1 && token.type != TokenType.Words) { - step = 2; + IntegrationTest.Fail(); } - else if (step == 2 && token.type == TokenType.BoldEnd) + else if (index == 2 && token.type == TokenType.BoldEnd) { IntegrationTest.Pass(); } From 73c93669b55e9588c4276e1914233d8be37d7fee Mon Sep 17 00:00:00 2001 From: Christopher Date: Tue, 27 Sep 2016 15:32:06 +0100 Subject: [PATCH 3/7] Added WriterState signal --- Assets/Fungus/Scripts/Components/Writer.cs | 25 ++++++++++++ .../Fungus/Scripts/Signals/WriterSignals.cs | 9 ++++- Assets/Tests/Signals/SignalsTests.unity | 7 ++-- Assets/Tests/Signals/WriterSignalsTester.cs | 38 +++++++++++++++++-- 4 files changed, 72 insertions(+), 7 deletions(-) diff --git a/Assets/Fungus/Scripts/Components/Writer.cs b/Assets/Fungus/Scripts/Components/Writer.cs index 5b9cfd9b..710def21 100644 --- a/Assets/Fungus/Scripts/Components/Writer.cs +++ b/Assets/Fungus/Scripts/Components/Writer.cs @@ -12,6 +12,23 @@ using Fungus.Utils; namespace Fungus { + /// + /// Current state of the writing process. + /// + public enum WriterState + { + /// Invalid state. + Invalid, + /// Writer has started writing. + Start, + /// Writing has been paused. + Pause, + /// Writing has resumed after a pause. + Resume, + /// Writing has ended. + End + } + /// /// Writes text using a typewriter effect to a UI text object. /// @@ -677,6 +694,8 @@ namespace Fungus protected virtual void NotifyStart(AudioClip audioClip) { + WriterSignals.DoWriterState(this, WriterState.Start); + foreach (IWriterListener writerListener in writerListeners) { writerListener.OnStart(audioClip); @@ -685,6 +704,8 @@ namespace Fungus protected virtual void NotifyPause() { + WriterSignals.DoWriterState(this, WriterState.Pause); + foreach (IWriterListener writerListener in writerListeners) { writerListener.OnPause(); @@ -693,6 +714,8 @@ namespace Fungus protected virtual void NotifyResume() { + WriterSignals.DoWriterState(this, WriterState.Resume); + foreach (IWriterListener writerListener in writerListeners) { writerListener.OnResume(); @@ -701,6 +724,8 @@ namespace Fungus protected virtual void NotifyEnd(bool stopAudio) { + WriterSignals.DoWriterState(this, WriterState.End); + foreach (IWriterListener writerListener in writerListeners) { writerListener.OnEnd(stopAudio); diff --git a/Assets/Fungus/Scripts/Signals/WriterSignals.cs b/Assets/Fungus/Scripts/Signals/WriterSignals.cs index 50334920..b519af29 100644 --- a/Assets/Fungus/Scripts/Signals/WriterSignals.cs +++ b/Assets/Fungus/Scripts/Signals/WriterSignals.cs @@ -16,7 +16,14 @@ namespace Fungus /// public delegate void TextTagTokenHandler(Writer writer, TextTagToken token, int index, int maxIndex); public static event TextTagTokenHandler OnTextTagToken; - public static void DoTextTagToken(Writer writer, TextTagToken token, int index, int maxIndex){ if(OnTextTagToken != null) OnTextTagToken(writer, token, index, maxIndex); } + public static void DoTextTagToken(Writer writer, TextTagToken token, int index, int maxIndex) { if(OnTextTagToken != null) OnTextTagToken(writer, token, index, maxIndex); } + + /// + /// WriterState signal. Sent when the writer changes state. + /// + public delegate void WriterStateHandler(Writer writer, WriterState writerState); + public static event WriterStateHandler OnWriterState; + public static void DoWriterState(Writer writer, WriterState writerState) { if (OnWriterState != null) OnWriterState(writer, writerState); } #endregion } diff --git a/Assets/Tests/Signals/SignalsTests.unity b/Assets/Tests/Signals/SignalsTests.unity index 720ca45f..9e4a4d9d 100644 --- a/Assets/Tests/Signals/SignalsTests.unity +++ b/Assets/Tests/Signals/SignalsTests.unity @@ -306,7 +306,7 @@ MonoBehaviour: textObject: {fileID: 41796120} text: stringRef: {fileID: 0} - stringVal: '{b}hello{/b}' + stringVal: '{b}{w=0.5}hello{/b}' description: clearText: 1 waitUntilFinished: 1 @@ -378,8 +378,9 @@ MonoBehaviour: y: -340 width: 1114 height: 859 - selectedBlock: {fileID: 0} - selectedCommands: [] + selectedBlock: {fileID: 411939903} + selectedCommands: + - {fileID: 411939901} variables: [] description: Check that Writer signals are sending correctly stepPause: 0 diff --git a/Assets/Tests/Signals/WriterSignalsTester.cs b/Assets/Tests/Signals/WriterSignalsTester.cs index 7a508078..ee0512e5 100644 --- a/Assets/Tests/Signals/WriterSignalsTester.cs +++ b/Assets/Tests/Signals/WriterSignalsTester.cs @@ -9,9 +9,12 @@ namespace Fungus [AddComponentMenu("")] public class WriterSignalsTester : MonoBehaviour { + int correctTagCount = 0; + void OnEnable() { WriterSignals.OnTextTagToken += OnTextTagToken; + WriterSignals.OnWriterState += OnWriterState; } void OnDisable() @@ -21,15 +24,44 @@ namespace Fungus void OnTextTagToken(Writer writer, TextTagToken token, int index, int maxIndex) { - if (index == 0 && token.type != TokenType.BoldStart) + if (index == 0 && token.type == TokenType.BoldStart) + { + correctTagCount++; + } + else if (index == 1 && token.type == TokenType.Wait) + { + correctTagCount++; + } + else if (index == 2 && token.type == TokenType.Words) + { + correctTagCount++; + } + else if (index == 3 && token.type == TokenType.BoldEnd) + { + correctTagCount++; + } + } + + void OnWriterState(Writer writer, WriterState writerState) + { + if (writerState == WriterState.Start && correctTagCount != 0) + { + IntegrationTest.Fail(); + } + if (writerState == WriterState.Pause && correctTagCount != 2) { IntegrationTest.Fail(); } - else if (index == 1 && token.type != TokenType.Words) + if (writerState == WriterState.Resume && correctTagCount != 2) { IntegrationTest.Fail(); } - else if (index == 2 && token.type == TokenType.BoldEnd) + else if (writerState == WriterState.End && correctTagCount != 4) + { + IntegrationTest.Fail(); + } + + if (writerState == WriterState.End) { IntegrationTest.Pass(); } From 404ed1d88ab60825f49c83f816fce9a786581e43 Mon Sep 17 00:00:00 2001 From: Christopher Date: Tue, 27 Sep 2016 15:43:57 +0100 Subject: [PATCH 4/7] WriterInput signal --- Assets/Fungus/Scripts/Components/Writer.cs | 2 + .../Fungus/Scripts/Signals/WriterSignals.cs | 7 + Assets/Tests/Signals/SignalsTests.unity | 120 ++++++++++++++++-- Assets/Tests/Signals/WriterSignalsTester.cs | 14 ++ 4 files changed, 134 insertions(+), 9 deletions(-) diff --git a/Assets/Fungus/Scripts/Components/Writer.cs b/Assets/Fungus/Scripts/Components/Writer.cs index 710def21..a4958c29 100644 --- a/Assets/Fungus/Scripts/Components/Writer.cs +++ b/Assets/Fungus/Scripts/Components/Writer.cs @@ -686,6 +686,8 @@ namespace Fungus protected virtual void NotifyInput() { + WriterSignals.DoWriterInput(this); + foreach (IWriterListener writerListener in writerListeners) { writerListener.OnInput(); diff --git a/Assets/Fungus/Scripts/Signals/WriterSignals.cs b/Assets/Fungus/Scripts/Signals/WriterSignals.cs index b519af29..f1c07a6c 100644 --- a/Assets/Fungus/Scripts/Signals/WriterSignals.cs +++ b/Assets/Fungus/Scripts/Signals/WriterSignals.cs @@ -25,6 +25,13 @@ namespace Fungus public static event WriterStateHandler OnWriterState; public static void DoWriterState(Writer writer, WriterState writerState) { if (OnWriterState != null) OnWriterState(writer, writerState); } + /// + /// WriterInput signal. Sent when the writer receives player input. + /// + public delegate void WriterInputHandler(Writer writer); + public static event WriterInputHandler OnWriterInput; + public static void DoWriterInput(Writer writer) { if (OnWriterInput != null) OnWriterInput(writer); } + #endregion } } diff --git a/Assets/Tests/Signals/SignalsTests.unity b/Assets/Tests/Signals/SignalsTests.unity index 9e4a4d9d..c5fba771 100644 --- a/Assets/Tests/Signals/SignalsTests.unity +++ b/Assets/Tests/Signals/SignalsTests.unity @@ -100,6 +100,7 @@ GameObject: - 224: {fileID: 41796123} - 222: {fileID: 41796122} - 114: {fileID: 41796121} + - 114: {fileID: 41796124} m_Layer: 5 m_Name: Text m_TagString: Untagged @@ -164,6 +165,25 @@ RectTransform: m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 0, y: 96} m_Pivot: {x: 0, y: 1} +--- !u!114 &41796124 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 41796120} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a676940fce6344af1a70043b089a6c14, type: 3} + m_Name: + m_EditorClassIdentifier: + targetTextObject: {fileID: 41796120} + punchObject: {fileID: 41796120} + writingSpeed: 60 + punctuationPause: 0.25 + hiddenTextColor: {r: 1, g: 1, b: 1, a: 0} + writeWholeWords: 0 + forceRichText: 1 + instantComplete: 1 --- !u!1 &147434164 GameObject: m_ObjectHideFlags: 0 @@ -179,7 +199,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 1 + m_IsActive: 0 --- !u!114 &147434165 MonoBehaviour: m_ObjectHideFlags: 0 @@ -270,6 +290,10 @@ GameObject: - 114: {fileID: 411939903} - 114: {fileID: 411939902} - 114: {fileID: 411939901} + - 114: {fileID: 411939908} + - 114: {fileID: 411939907} + - 114: {fileID: 411939906} + - 114: {fileID: 411939905} m_Layer: 0 m_Name: Flowchart m_TagString: Untagged @@ -306,7 +330,7 @@ MonoBehaviour: textObject: {fileID: 41796120} text: stringRef: {fileID: 0} - stringVal: '{b}{w=0.5}hello{/b}' + stringVal: '{b}{w=1}hello{/b}' description: clearText: 1 waitUntilFinished: 1 @@ -350,7 +374,7 @@ MonoBehaviour: height: 40 itemId: 0 blockName: Start - description: + description: Starts writing text using a Writer eventHandler: {fileID: 411939902} commandList: - {fileID: 411939901} @@ -374,13 +398,12 @@ MonoBehaviour: zoom: 1 scrollViewRect: serializedVersion: 2 - x: -343 - y: -340 - width: 1114 - height: 859 + x: -350 + y: -350 + width: 1121 + height: 869 selectedBlock: {fileID: 411939903} - selectedCommands: - - {fileID: 411939901} + selectedCommands: [] variables: [] description: Check that Writer signals are sending correctly stepPause: 0 @@ -392,6 +415,85 @@ MonoBehaviour: hideCommands: [] luaEnvironment: {fileID: 0} luaBindingName: flowchart +--- !u!114 &411939905 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 411939899} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 688e35811870d403f9e2b1ab2a699d98, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 4 + indentLevel: 0 + targetObject: {fileID: 41796120} + targetComponentAssemblyName: Fungus.Writer, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, + PublicKeyToken=null + targetComponentFullname: UnityEngine.Component[] + targetComponentText: Writer + targetMethod: OnNextLineEvent + targetMethodText: 'OnNextLineEvent (): Void' + methodParameters: [] + saveReturnValue: 0 + returnValueVariableKey: + returnValueType: System.Void + showInherited: 0 + callMode: 0 +--- !u!114 &411939906 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 411939899} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3315ad2ebb85443909a1203d56d9344e, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 3 + indentLevel: 0 + _duration: + floatRef: {fileID: 0} + floatVal: 0.5 + durationOLD: 0 +--- !u!114 &411939907 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 411939899} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d2f6487d21a03404cb21b245f0242e79, type: 3} + m_Name: + m_EditorClassIdentifier: + parentBlock: {fileID: 411939908} +--- !u!114 &411939908 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 411939899} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3d3d73aef2cfc4f51abf34ac00241f60, type: 3} + m_Name: + m_EditorClassIdentifier: + nodeRect: + serializedVersion: 2 + x: 249 + y: 69 + width: 120 + height: 40 + itemId: 2 + blockName: DoInput + description: Sends an input event to the Writer after a short delay + eventHandler: {fileID: 411939907} + commandList: + - {fileID: 411939906} + - {fileID: 411939905} --- !u!1 &597475644 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/Tests/Signals/WriterSignalsTester.cs b/Assets/Tests/Signals/WriterSignalsTester.cs index ee0512e5..be952034 100644 --- a/Assets/Tests/Signals/WriterSignalsTester.cs +++ b/Assets/Tests/Signals/WriterSignalsTester.cs @@ -10,16 +10,20 @@ namespace Fungus public class WriterSignalsTester : MonoBehaviour { int correctTagCount = 0; + bool receivedInput = false; void OnEnable() { WriterSignals.OnTextTagToken += OnTextTagToken; WriterSignals.OnWriterState += OnWriterState; + WriterSignals.OnWriterInput += OnWriterInput; } void OnDisable() { WriterSignals.OnTextTagToken -= OnTextTagToken; + WriterSignals.OnWriterState -= OnWriterState; + WriterSignals.OnWriterInput -= OnWriterInput; } void OnTextTagToken(Writer writer, TextTagToken token, int index, int maxIndex) @@ -63,8 +67,18 @@ namespace Fungus if (writerState == WriterState.End) { + if (!receivedInput) + { + IntegrationTest.Fail(); + } + IntegrationTest.Pass(); } } + + void OnWriterInput(Writer writer) + { + receivedInput = true; + } } } \ No newline at end of file From 06942b0583c699aff33f6ee19ceb1435bd739491 Mon Sep 17 00:00:00 2001 From: Christopher Date: Tue, 27 Sep 2016 15:53:20 +0100 Subject: [PATCH 5/7] Added WriterGlyph signal --- Assets/Fungus/Scripts/Components/Writer.cs | 2 ++ Assets/Fungus/Scripts/Signals/WriterSignals.cs | 7 +++++++ Assets/Tests/Signals/WriterSignalsTester.cs | 13 +++++++++++++ 3 files changed, 22 insertions(+) diff --git a/Assets/Fungus/Scripts/Components/Writer.cs b/Assets/Fungus/Scripts/Components/Writer.cs index a4958c29..667c3281 100644 --- a/Assets/Fungus/Scripts/Components/Writer.cs +++ b/Assets/Fungus/Scripts/Components/Writer.cs @@ -736,6 +736,8 @@ namespace Fungus protected virtual void NotifyGlyph() { + WriterSignals.DoWriterGlyph(this); + foreach (IWriterListener writerListener in writerListeners) { writerListener.OnGlyph(); diff --git a/Assets/Fungus/Scripts/Signals/WriterSignals.cs b/Assets/Fungus/Scripts/Signals/WriterSignals.cs index f1c07a6c..bcf0365e 100644 --- a/Assets/Fungus/Scripts/Signals/WriterSignals.cs +++ b/Assets/Fungus/Scripts/Signals/WriterSignals.cs @@ -32,6 +32,13 @@ namespace Fungus public static event WriterInputHandler OnWriterInput; public static void DoWriterInput(Writer writer) { if (OnWriterInput != null) OnWriterInput(writer); } + /// + /// WriterGlyph signal. Sent when the writer writes out a glyph. + /// + public delegate void WriterGlyphHandler(Writer writer); + public static event WriterGlyphHandler OnWriterGlyph; + public static void DoWriterGlyph(Writer writer) { if (OnWriterGlyph != null) OnWriterGlyph(writer); } + #endregion } } diff --git a/Assets/Tests/Signals/WriterSignalsTester.cs b/Assets/Tests/Signals/WriterSignalsTester.cs index be952034..323b47a3 100644 --- a/Assets/Tests/Signals/WriterSignalsTester.cs +++ b/Assets/Tests/Signals/WriterSignalsTester.cs @@ -11,12 +11,14 @@ namespace Fungus { int correctTagCount = 0; bool receivedInput = false; + int glyphCount = 0; void OnEnable() { WriterSignals.OnTextTagToken += OnTextTagToken; WriterSignals.OnWriterState += OnWriterState; WriterSignals.OnWriterInput += OnWriterInput; + WriterSignals.OnWriterGlyph += OnWriterGlyph; } void OnDisable() @@ -24,6 +26,7 @@ namespace Fungus WriterSignals.OnTextTagToken -= OnTextTagToken; WriterSignals.OnWriterState -= OnWriterState; WriterSignals.OnWriterInput -= OnWriterInput; + WriterSignals.OnWriterGlyph -= OnWriterGlyph; } void OnTextTagToken(Writer writer, TextTagToken token, int index, int maxIndex) @@ -72,6 +75,11 @@ namespace Fungus IntegrationTest.Fail(); } + if (glyphCount != 6) + { + IntegrationTest.Fail(); + } + IntegrationTest.Pass(); } } @@ -80,5 +88,10 @@ namespace Fungus { receivedInput = true; } + + void OnWriterGlyph(Writer writer) + { + glyphCount++; + } } } \ No newline at end of file From 55cf2fbdff5d4751239d1790b38c6c9221843835 Mon Sep 17 00:00:00 2001 From: Christopher Date: Tue, 27 Sep 2016 15:56:12 +0100 Subject: [PATCH 6/7] Added comment --- Assets/Fungus/Scripts/Signals/WriterSignals.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/Assets/Fungus/Scripts/Signals/WriterSignals.cs b/Assets/Fungus/Scripts/Signals/WriterSignals.cs index bcf0365e..01b1a67d 100644 --- a/Assets/Fungus/Scripts/Signals/WriterSignals.cs +++ b/Assets/Fungus/Scripts/Signals/WriterSignals.cs @@ -6,6 +6,7 @@ namespace Fungus { /// /// Writer event signalling system. + /// You can use this to be notified about various events in the writing process. /// public static class WriterSignals { From 3755392da12abc7f4a9c6dc4c22c2d50f32aa4df Mon Sep 17 00:00:00 2001 From: Christopher Date: Tue, 27 Sep 2016 16:40:54 +0100 Subject: [PATCH 7/7] Added Block signals --- Assets/Fungus/Scripts/Components/Block.cs | 3 + Assets/Fungus/Scripts/Signals/BlockSignals.cs | 36 +++ .../Scripts/Signals/BlockSignals.cs.meta | 12 + .../Fungus/Scripts/Signals/WriterSignals.cs | 6 +- Assets/Tests/Signals/BlockSignalsTester.cs | 53 +++++ .../Tests/Signals/BlockSignalsTester.cs.meta | 12 + Assets/Tests/Signals/SignalsTests.unity | 221 +++++++++++++++++- 7 files changed, 337 insertions(+), 6 deletions(-) create mode 100644 Assets/Fungus/Scripts/Signals/BlockSignals.cs create mode 100644 Assets/Fungus/Scripts/Signals/BlockSignals.cs.meta create mode 100644 Assets/Tests/Signals/BlockSignalsTester.cs create mode 100644 Assets/Tests/Signals/BlockSignalsTester.cs.meta diff --git a/Assets/Fungus/Scripts/Components/Block.cs b/Assets/Fungus/Scripts/Components/Block.cs index 41278dfd..9be9693f 100644 --- a/Assets/Fungus/Scripts/Components/Block.cs +++ b/Assets/Fungus/Scripts/Components/Block.cs @@ -213,6 +213,7 @@ namespace Fungus var flowchart = GetFlowchart(); executionState = ExecutionState.Executing; + BlockSignals.DoBlockStart(this); #if UNITY_EDITOR // Select the executing block & the first command @@ -278,6 +279,7 @@ namespace Fungus // This icon timer is managed by the FlowchartWindow class, but we also need to // set it here in case a command starts and finishes execution before the next window update. command.ExecutingIconTimer = Time.realtimeSinceStartup + FungusConstants.ExecutingIconFadeTime; + BlockSignals.DoCommandExecute(this, command, i, commandList.Count); command.Execute(); // Wait until the executing command sets another command to jump to via Command.Continue() @@ -298,6 +300,7 @@ namespace Fungus executionState = ExecutionState.Idle; activeCommand = null; + BlockSignals.DoBlockEnd(this); if (onComplete != null) { diff --git a/Assets/Fungus/Scripts/Signals/BlockSignals.cs b/Assets/Fungus/Scripts/Signals/BlockSignals.cs new file mode 100644 index 00000000..0492d850 --- /dev/null +++ b/Assets/Fungus/Scripts/Signals/BlockSignals.cs @@ -0,0 +1,36 @@ +using Fungus.Utils; + +namespace Fungus +{ + /// + /// Block event signalling system. + /// You can use this to be notified about various events in the Block execution process. + /// + public static class BlockSignals + { + #region Public members + + /// + /// BlockStart signal. Sent when the Block starts execution. + /// + public static event BlockStartHandler OnBlockStart; + public delegate void BlockStartHandler(Block block); + public static void DoBlockStart(Block block) { if (OnBlockStart != null) OnBlockStart(block); } + + /// + /// BlockEnd signal. Sent when the Block ends execution. + /// + public static event BlockEndHandler OnBlockEnd; + public delegate void BlockEndHandler(Block block); + public static void DoBlockEnd(Block block) { if (OnBlockEnd != null) OnBlockEnd(block); } + + /// + /// CommandExecute signal. Sent just before a Command in a Block executes. + /// + public static event CommandExecuteHandler OnCommandExecute; + public delegate void CommandExecuteHandler(Block block, Command command, int commandIndex, int maxCommandIndex); + public static void DoCommandExecute(Block block, Command command, int commandIndex, int maxCommandIndex) { if (OnCommandExecute != null) OnCommandExecute(block, command, commandIndex, maxCommandIndex); } + + #endregion + } +} diff --git a/Assets/Fungus/Scripts/Signals/BlockSignals.cs.meta b/Assets/Fungus/Scripts/Signals/BlockSignals.cs.meta new file mode 100644 index 00000000..d3c70701 --- /dev/null +++ b/Assets/Fungus/Scripts/Signals/BlockSignals.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 12109e10b0f034bbab8a7a5d700bc070 +timeCreated: 1474988491 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Fungus/Scripts/Signals/WriterSignals.cs b/Assets/Fungus/Scripts/Signals/WriterSignals.cs index 01b1a67d..ff9680d5 100644 --- a/Assets/Fungus/Scripts/Signals/WriterSignals.cs +++ b/Assets/Fungus/Scripts/Signals/WriterSignals.cs @@ -15,22 +15,22 @@ namespace Fungus /// /// TextTagToken signal. Sent for each unique token when writing text. /// - public delegate void TextTagTokenHandler(Writer writer, TextTagToken token, int index, int maxIndex); public static event TextTagTokenHandler OnTextTagToken; + public delegate void TextTagTokenHandler(Writer writer, TextTagToken token, int index, int maxIndex); public static void DoTextTagToken(Writer writer, TextTagToken token, int index, int maxIndex) { if(OnTextTagToken != null) OnTextTagToken(writer, token, index, maxIndex); } /// /// WriterState signal. Sent when the writer changes state. /// - public delegate void WriterStateHandler(Writer writer, WriterState writerState); public static event WriterStateHandler OnWriterState; + public delegate void WriterStateHandler(Writer writer, WriterState writerState); public static void DoWriterState(Writer writer, WriterState writerState) { if (OnWriterState != null) OnWriterState(writer, writerState); } /// /// WriterInput signal. Sent when the writer receives player input. /// - public delegate void WriterInputHandler(Writer writer); public static event WriterInputHandler OnWriterInput; + public delegate void WriterInputHandler(Writer writer); public static void DoWriterInput(Writer writer) { if (OnWriterInput != null) OnWriterInput(writer); } /// diff --git a/Assets/Tests/Signals/BlockSignalsTester.cs b/Assets/Tests/Signals/BlockSignalsTester.cs new file mode 100644 index 00000000..754d9a26 --- /dev/null +++ b/Assets/Tests/Signals/BlockSignalsTester.cs @@ -0,0 +1,53 @@ +using UnityEngine; +using System.Collections; +using Fungus.Commands; + +namespace Fungus +{ + /// + /// Checks if Block signals are being sent correctly. + /// + [AddComponentMenu("")] + public class BlockSignalsTester : MonoBehaviour + { + bool started = false; + bool commandExecuted = false; + + void OnEnable() + { + BlockSignals.OnBlockStart += OnBlockStart; + BlockSignals.OnBlockEnd += OnBlockEnd; + BlockSignals.OnCommandExecute += OnCommandExecute; + } + + void OnDisable() + { + BlockSignals.OnBlockStart -= OnBlockStart; + BlockSignals.OnBlockEnd -= OnBlockEnd; + BlockSignals.OnCommandExecute -= OnCommandExecute; + } + + void OnBlockStart(Block block) + { + IntegrationTest.Assert(block.BlockName == "Start"); + + started = true; + } + + void OnBlockEnd(Block block) + { + IntegrationTest.Assert(started); + IntegrationTest.Assert(commandExecuted); + + IntegrationTest.Pass(); + } + + void OnCommandExecute(Block block, Command command, int commandIndex, int maxCommandIndex) + { + IntegrationTest.Assert(commandIndex == 0); + IntegrationTest.Assert(maxCommandIndex == 1); + IntegrationTest.Assert(command.GetType() == typeof(Wait)); + commandExecuted = true; + } + } +} \ No newline at end of file diff --git a/Assets/Tests/Signals/BlockSignalsTester.cs.meta b/Assets/Tests/Signals/BlockSignalsTester.cs.meta new file mode 100644 index 00000000..6fe2ffc5 --- /dev/null +++ b/Assets/Tests/Signals/BlockSignalsTester.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 5d396ca39a0454e2ca06d4aad7c5706c +timeCreated: 1474988463 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Tests/Signals/SignalsTests.unity b/Assets/Tests/Signals/SignalsTests.unity index c5fba771..c368d289 100644 --- a/Assets/Tests/Signals/SignalsTests.unity +++ b/Assets/Tests/Signals/SignalsTests.unity @@ -264,7 +264,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 61dddfdc5e0e44ca298d8f46f7f5a915, type: 3} m_Name: m_EditorClassIdentifier: - selectedFlowchart: {fileID: 411939904} + selectedFlowchart: {fileID: 330763419} --- !u!4 &286067097 Transform: m_ObjectHideFlags: 1 @@ -278,6 +278,129 @@ Transform: m_Children: [] m_Father: {fileID: 0} m_RootOrder: 1 +--- !u!1 &330763414 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 142980, guid: 5e7fbc8d4eb714b279eeeef2262c1e1a, type: 2} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 330763415} + - 114: {fileID: 330763419} + - 114: {fileID: 330763418} + - 114: {fileID: 330763417} + - 114: {fileID: 330763416} + m_Layer: 0 + m_Name: Flowchart + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &330763415 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 467082, guid: 5e7fbc8d4eb714b279eeeef2262c1e1a, type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 330763414} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 467145139} + m_RootOrder: 0 +--- !u!114 &330763416 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 330763414} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3315ad2ebb85443909a1203d56d9344e, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 1 + indentLevel: 0 + _duration: + floatRef: {fileID: 0} + floatVal: 1 + durationOLD: 0 +--- !u!114 &330763417 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_PrefabParentObject: {fileID: 11462346, guid: 5e7fbc8d4eb714b279eeeef2262c1e1a, + type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 330763414} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d2f6487d21a03404cb21b245f0242e79, type: 3} + m_Name: + m_EditorClassIdentifier: + parentBlock: {fileID: 330763418} +--- !u!114 &330763418 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_PrefabParentObject: {fileID: 11433304, guid: 5e7fbc8d4eb714b279eeeef2262c1e1a, + type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 330763414} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3d3d73aef2cfc4f51abf34ac00241f60, type: 3} + m_Name: + m_EditorClassIdentifier: + nodeRect: + serializedVersion: 2 + x: 67 + y: 70 + width: 120 + height: 40 + itemId: 0 + blockName: Start + description: + eventHandler: {fileID: 330763417} + commandList: + - {fileID: 330763416} +--- !u!114 &330763419 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11430050, guid: 5e7fbc8d4eb714b279eeeef2262c1e1a, + type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 330763414} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7a334fe2ffb574b3583ff3b18b4792d3, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 1 + scrollPos: {x: 0, y: 0} + variablesScrollPos: {x: 0, y: 0} + variablesExpanded: 1 + blockViewHeight: 400 + zoom: 1 + scrollViewRect: + serializedVersion: 2 + x: -343 + y: -340 + width: 1114 + height: 859 + selectedBlock: {fileID: 330763418} + selectedCommands: [] + variables: [] + description: + stepPause: 0 + colorCommands: 1 + hideComponents: 1 + saveSelection: 1 + localizationId: + showLineNumbers: 0 + hideCommands: [] + luaEnvironment: {fileID: 0} + luaBindingName: flowchart --- !u!1 &411939899 GameObject: m_ObjectHideFlags: 0 @@ -494,6 +617,58 @@ MonoBehaviour: commandList: - {fileID: 411939906} - {fileID: 411939905} +--- !u!1 &467145137 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 467145139} + - 114: {fileID: 467145138} + m_Layer: 0 + m_Name: BlockSignalsTest + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &467145138 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 467145137} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b1dba0b27b0864740a8720e920aa88c0, type: 3} + m_Name: + m_EditorClassIdentifier: + timeout: 5 + ignored: 0 + succeedAfterAllAssertionsAreExecuted: 0 + expectException: 0 + expectedExceptionList: + succeedWhenExceptionIsThrown: 0 + includedPlatforms: -1 + platformsToIgnore: [] + dynamic: 0 + dynamicTypeName: +--- !u!4 &467145139 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 467145137} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 330763415} + - {fileID: 676488089} + m_Father: {fileID: 0} + m_RootOrder: 3 --- !u!1 &597475644 GameObject: m_ObjectHideFlags: 0 @@ -581,6 +756,46 @@ Transform: m_Children: [] m_Father: {fileID: 0} m_RootOrder: 0 +--- !u!1 &676488088 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 676488089} + - 114: {fileID: 676488090} + m_Layer: 0 + m_Name: BlockSignalsTester + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &676488089 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 676488088} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 467145139} + m_RootOrder: 1 +--- !u!114 &676488090 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 676488088} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5d396ca39a0454e2ca06d4aad7c5706c, type: 3} + m_Name: + m_EditorClassIdentifier: --- !u!1 &759754969 GameObject: m_ObjectHideFlags: 0 @@ -642,7 +857,7 @@ Transform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 4 + m_RootOrder: 5 --- !u!1 &1201908855 GameObject: m_ObjectHideFlags: 0 @@ -816,4 +1031,4 @@ Transform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 3 + m_RootOrder: 4