From 5ea20a3d6a925316f33cc8e9b51cfb631cac2104 Mon Sep 17 00:00:00 2001 From: s402520 <sven.gerlach@stud-mail.uni-wuerzburg.de> Date: Mon, 8 May 2023 09:53:46 +0200 Subject: [PATCH] WorldSpaceUI Fixed (& Prefabs) --- .../ScreenSpaceDialogueBox.prefab | 128 ++++++++ .../ScreenSpaceDialogueBox.prefab.meta | 7 + .../DialogSystem/WorldSpaceArticyStoryline.cs | 51 +++ .../WorldSpaceArticyStoryline.cs.meta | 11 + Assets/DialogSystem/WorldSpaceDialogueBox.cs | 48 ++- .../DialogSystem/WorldSpaceDialogueBox.prefab | 155 +++++++++ .../WorldSpaceDialogueBox.prefab.meta | 7 + Assets/DialogSystem/WorldSpaceUIDocument.cs | 50 +-- Assets/Scenes/ArticyTestScene.unity | 296 +++++++----------- 9 files changed, 547 insertions(+), 206 deletions(-) create mode 100644 Assets/DialogSystem/ScreenSpaceDialogueBox.prefab create mode 100644 Assets/DialogSystem/ScreenSpaceDialogueBox.prefab.meta create mode 100644 Assets/DialogSystem/WorldSpaceArticyStoryline.cs create mode 100644 Assets/DialogSystem/WorldSpaceArticyStoryline.cs.meta create mode 100644 Assets/DialogSystem/WorldSpaceDialogueBox.prefab create mode 100644 Assets/DialogSystem/WorldSpaceDialogueBox.prefab.meta diff --git a/Assets/DialogSystem/ScreenSpaceDialogueBox.prefab b/Assets/DialogSystem/ScreenSpaceDialogueBox.prefab new file mode 100644 index 0000000..5a111dc --- /dev/null +++ b/Assets/DialogSystem/ScreenSpaceDialogueBox.prefab @@ -0,0 +1,128 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &3116787516878310592 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1215535168859495125} + - component: {fileID: 2040891770426260038} + - component: {fileID: 7704825048354520565} + - component: {fileID: 3948177991626159650} + - component: {fileID: 1028974936128728872} + - component: {fileID: 5577005612343999462} + m_Layer: 5 + m_Name: ScreenSpaceDialogueBox + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1215535168859495125 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3116787516878310592} + 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_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &2040891770426260038 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3116787516878310592} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 19102, guid: 0000000000000000e000000000000000, type: 0} + m_Name: + m_EditorClassIdentifier: + m_PanelSettings: {fileID: 11400000, guid: fd07337020fac9f4d817f2d168694173, type: 2} + m_ParentUI: {fileID: 0} + sourceAsset: {fileID: 0} + m_SortingOrder: 0 +--- !u!114 &7704825048354520565 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3116787516878310592} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0b06390bd25b8824eb83c9de4937a410, type: 3} + m_Name: + m_EditorClassIdentifier: + visualTree: {fileID: 9197481963319205126, guid: 603e8ecda2bc66148be7bc0929e2f25b, type: 3} + styleSheet: {fileID: 7433441132597879392, guid: 78ec576a11766354b9c6c1e555acf5e4, type: 3} + defaultButtonText: Continue +--- !u!114 &3948177991626159650 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3116787516878310592} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 149237616, guid: df2ec02f61e861546b9427c26ccacb8d, type: 3} + m_Name: + m_EditorClassIdentifier: + useDefaultGlobalVariables: 1 + globalVariables: {fileID: 0} + overwriteMethodProvider: 0 + overwrittenMethodProvider: {fileID: 0} + startOn: + instanceId: 0 + referencingMode: 0 + lowId: 0 + highId: 0 + pauseOn: 7 + ignoreInvalidBranches: 1 + continuouslyRecalculateBranches: 0 + continouslyRecalculateInterval: 1 +--- !u!114 &1028974936128728872 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3116787516878310592} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d52eb85494921dd48be8d847a8298602, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &5577005612343999462 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3116787516878310592} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 04f433ebeda01b14092e4f7f84512a40, type: 3} + m_Name: + m_EditorClassIdentifier: + aPress: + instanceId: 0 + referencingMode: 0 + lowId: 147 + highId: 16777216 + bPress: + instanceId: 0 + referencingMode: 0 + lowId: 43 + highId: 16777216 diff --git a/Assets/DialogSystem/ScreenSpaceDialogueBox.prefab.meta b/Assets/DialogSystem/ScreenSpaceDialogueBox.prefab.meta new file mode 100644 index 0000000..a339dc0 --- /dev/null +++ b/Assets/DialogSystem/ScreenSpaceDialogueBox.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 283a87519024a9544b7bb2a225211046 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/DialogSystem/WorldSpaceArticyStoryline.cs b/Assets/DialogSystem/WorldSpaceArticyStoryline.cs new file mode 100644 index 0000000..a0cdd86 --- /dev/null +++ b/Assets/DialogSystem/WorldSpaceArticyStoryline.cs @@ -0,0 +1,51 @@ +using Articy.Unity; +using Articy.Unity.Interfaces; +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class WorldSpaceArticyStoryline : MonoBehaviour, IArticyFlowPlayerCallbacks { + public IList<Branch> currentBranches; + + //previously ApplyTransition + //is called at every "Pause" of the Flow Player (Pause = Dialogue Nodes,...) + public void OnFlowPlayerPaused(IFlowObject currentNode) { + var dialogueBox = GetComponent<WorldSpaceDialogueBox>(); + + if (currentNode != null) { + var objWithText = currentNode as IObjectWithText; + if (objWithText != null) { + dialogueBox.SetText(objWithText.Text); + } + + var objSpeaker = currentNode as IObjectWithSpeaker; + if (objSpeaker != null) { + var speakerDisplayName = objSpeaker.Speaker as IObjectWithDisplayName; + if (speakerDisplayName != null) { + dialogueBox.SetActor(speakerDisplayName.DisplayName); + } + else { + dialogueBox.SetActor(string.Empty); + } + } + else { + dialogueBox.SetActor(string.Empty); + } + } + else { + dialogueBox.ClearUI(); + } + } + + //is called with every new Dialogue Node and returns its branches + public void OnBranchesUpdated(IList<Branch> branches) { + currentBranches = branches; + GetComponent<WorldSpaceDialogueBox>().SetTransitions(currentBranches); + } + + //used by the Buttons in the DialogueBox script + public void ApplyTransition(int count) { + GetComponent<WorldSpaceDialogueBox>().ClearUI(); + GetComponent<ArticyFlowPlayer>().Play(currentBranches[count]); + } +} \ No newline at end of file diff --git a/Assets/DialogSystem/WorldSpaceArticyStoryline.cs.meta b/Assets/DialogSystem/WorldSpaceArticyStoryline.cs.meta new file mode 100644 index 0000000..55274ef --- /dev/null +++ b/Assets/DialogSystem/WorldSpaceArticyStoryline.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 2a59cd820c99c234fa950e2b034e9fa0 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/DialogSystem/WorldSpaceDialogueBox.cs b/Assets/DialogSystem/WorldSpaceDialogueBox.cs index 126e1f8..b3a8e1b 100644 --- a/Assets/DialogSystem/WorldSpaceDialogueBox.cs +++ b/Assets/DialogSystem/WorldSpaceDialogueBox.cs @@ -1,13 +1,16 @@ using UnityEditor; +using System.Collections.Generic; +using Articy.Unity; +using Articy.Unity.Interfaces; +using Articy.Unity.Utils; using UnityEngine; -using UnityEngine.Events; +using System.Collections; +using UnityEngine.EventSystems; using UnityEngine.UIElements; public class WorldSpaceDialogueBox : MonoBehaviour { - //Only the different parts for now - private UIDocument uiDocument; [SerializeField] protected VisualTreeAsset visualTree; [SerializeField] protected StyleSheet styleSheet; @@ -15,6 +18,8 @@ public class WorldSpaceDialogueBox : MonoBehaviour { private VisualElement root; private Button[] buttons; + public string defaultButtonText = "Continue"; + public void Awake() { worldSpaceUIDocument.onUIDocumentReady.AddListener(setUIDocument); @@ -27,14 +32,49 @@ private void setUIDocument() { tree.styleSheets.Add(styleSheet); root.Add(tree); buttons = root.Query<Button>().ToList().ToArray(); + ClearUI(); for (var i = 0; i < buttons.Length; i++) { var index = i; - buttons[i].RegisterCallback<MouseUpEvent>(_ => GetComponent<ArticyStoryline>().ApplyTransition(index)); + buttons[i].RegisterCallback<MouseUpEvent>(_ => GetComponent<WorldSpaceArticyStoryline>().ApplyTransition(index)); } + } + + public void ClearUI() { + SetActor(string.Empty); + SetText(string.Empty); + for (var i = 0; i < buttons.Length; i++) + buttons[i].visible = false; + } + + public void SetActor(string actor) { + root.Q<Label>("Actor").text = actor; + } + public void SetText(string text) { + root.Q<TextElement>("Dialogue").text = text; } + public void SetTransitions(IList<Branch> branches) { + for (var i = 0; i < buttons.Length; i++) { + buttons[i].text = string.Empty; + + if (i < branches.Count) { + buttons[i].visible = true; + + var menuText = branches[i].Target as IObjectWithMenuText; + if (menuText != null && menuText.MenuText != string.Empty) { + buttons[i].text = menuText.MenuText; + } + else { + buttons[i].text = defaultButtonText; + } + } + else { + buttons[i].visible = false; + } + } + } } diff --git a/Assets/DialogSystem/WorldSpaceDialogueBox.prefab b/Assets/DialogSystem/WorldSpaceDialogueBox.prefab new file mode 100644 index 0000000..f8e14f7 --- /dev/null +++ b/Assets/DialogSystem/WorldSpaceDialogueBox.prefab @@ -0,0 +1,155 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &5313695097596267024 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5313695097596267050} + - component: {fileID: 5313695097596267051} + - component: {fileID: 5313695097596267028} + - component: {fileID: 5313695097596267029} + - component: {fileID: 5313695097596267030} + - component: {fileID: 5313695097596267049} + - component: {fileID: 5313695097596267048} + m_Layer: 0 + m_Name: WorldSpaceDialogueBox + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &5313695097596267050 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5313695097596267024} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0.17, y: 1.35, z: -9.08} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &5313695097596267051 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5313695097596267024} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fbbce919b93a804449b8e74c7b1eec1b, type: 3} + m_Name: + m_EditorClassIdentifier: + _panelWidth: 1280 + _panelHeight: 720 + _panelScale: 1 + _pixelsPerUnit: 1280 + _visualTreeAsset: {fileID: 0} + _panelSettingsPrefab: {fileID: 11400000, guid: fd07337020fac9f4d817f2d168694173, type: 2} + _renderTexturePrefab: {fileID: 8400000, guid: 17662cfbd375e554d91b75bf67594f93, type: 2} + UseDragEventFix: 0 + onUIDocumentReady: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &5313695097596267028 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5313695097596267024} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f6a8876d339d1ce4dbb83ea0158084f2, type: 3} + m_Name: + m_EditorClassIdentifier: + visualTree: {fileID: 9197481963319205126, guid: 603e8ecda2bc66148be7bc0929e2f25b, type: 3} + styleSheet: {fileID: 7433441132597879392, guid: 78ec576a11766354b9c6c1e555acf5e4, type: 3} + worldSpaceUIDocument: {fileID: 5313695097596267051} + defaultButtonText: Continue +--- !u!114 &5313695097596267029 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5313695097596267024} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6df61a9a13528fd4f9365c233cb23bfb, type: 3} + m_Name: + m_EditorClassIdentifier: + m_RaycastTriggerInteraction: 1 + m_EventMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_MaxRayIntersections: 10 + m_EventCamera: {fileID: 0} +--- !u!114 &5313695097596267030 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5313695097596267024} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 149237616, guid: df2ec02f61e861546b9427c26ccacb8d, type: 3} + m_Name: + m_EditorClassIdentifier: + useDefaultGlobalVariables: 1 + globalVariables: {fileID: 0} + overwriteMethodProvider: 0 + overwrittenMethodProvider: {fileID: 0} + startOn: + instanceId: 0 + referencingMode: 0 + lowId: 62 + highId: 16777216 + pauseOn: 7 + ignoreInvalidBranches: 1 + continuouslyRecalculateBranches: 0 + continouslyRecalculateInterval: 1 +--- !u!114 &5313695097596267049 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5313695097596267024} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2a59cd820c99c234fa950e2b034e9fa0, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &5313695097596267048 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5313695097596267024} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 04f433ebeda01b14092e4f7f84512a40, type: 3} + m_Name: + m_EditorClassIdentifier: + aPress: + instanceId: 0 + referencingMode: 0 + lowId: 62 + highId: 16777216 + bPress: + instanceId: 0 + referencingMode: 0 + lowId: 43 + highId: 16777216 diff --git a/Assets/DialogSystem/WorldSpaceDialogueBox.prefab.meta b/Assets/DialogSystem/WorldSpaceDialogueBox.prefab.meta new file mode 100644 index 0000000..797a6f2 --- /dev/null +++ b/Assets/DialogSystem/WorldSpaceDialogueBox.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 8cfe3f32eae0d304285287fececf058b +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/DialogSystem/WorldSpaceUIDocument.cs b/Assets/DialogSystem/WorldSpaceUIDocument.cs index 95c2de9..387578a 100644 --- a/Assets/DialogSystem/WorldSpaceUIDocument.cs +++ b/Assets/DialogSystem/WorldSpaceUIDocument.cs @@ -27,7 +27,7 @@ public class WorldSpaceUIDocument : MonoBehaviour, IPointerMoveHandler, IPointer [Tooltip("Some input modules (like the XRUIInputModule from the XR Interaction toolkit package) doesn't send PointerMove events. If you are using such an input module, just set this to true so at least you can properly drag things around.")] public bool UseDragEventFix = false; - + public Vector2 PanelSize { get => new Vector2(_panelWidth, _panelHeight); @@ -68,10 +68,10 @@ public VisualTreeAsset VisualTreeAsset public float PixelsPerUnit { get => _pixelsPerUnit; set { _pixelsPerUnit = value; RefreshPanelSize(); } } public PanelSettings PanelSettingsPrefab { get => _panelSettingsPrefab; set { _panelSettingsPrefab = value; RebuildPanel(); } } public RenderTexture RenderTexturePrefab { get => _renderTexturePrefab; set { _renderTexturePrefab = value; RebuildPanel(); } } - + protected MeshRenderer _meshRenderer; protected PanelEventHandler _panelEventHandler; - + // runtime rebuildable stuff protected UIDocument _uiDocument; protected PanelSettings _panelSettings; @@ -80,13 +80,13 @@ public VisualTreeAsset VisualTreeAsset public UnityEvent onUIDocumentReady; - void Awake () + void Awake() { PixelsPerUnit = _pixelsPerUnit; // dynamically a MeshFilter, MeshRenderer and BoxCollider MeshFilter meshFilter = gameObject.AddComponent<MeshFilter>(); - + _meshRenderer = gameObject.AddComponent<MeshRenderer>(); _meshRenderer.sharedMaterial = null; _meshRenderer.shadowCastingMode = ShadowCastingMode.Off; @@ -117,7 +117,7 @@ void Start() /// will always trigger RebuildPanel(), but if you are calling this after the GameObject started you must call RebuildPanel() so the /// changes take effect. /// </summary> - public void InitPanel (int panelWidth, int panelHeight, float panelScale, float pixelsPerUnit, VisualTreeAsset visualTreeAsset, PanelSettings panelSettingsPrefab, RenderTexture renderTexturePrefab) + public void InitPanel(int panelWidth, int panelHeight, float panelScale, float pixelsPerUnit, VisualTreeAsset visualTreeAsset, PanelSettings panelSettingsPrefab, RenderTexture renderTexturePrefab) { _panelWidth = panelWidth; _panelHeight = panelHeight; @@ -131,7 +131,7 @@ public void InitPanel (int panelWidth, int panelHeight, float panelScale, float /// <summary> /// Rebuilds the panel by destroy current assets and generating new ones based on the configuration. /// </summary> - public void RebuildPanel () + public void RebuildPanel() { DestroyGeneratedAssets(); @@ -161,7 +161,7 @@ public void RebuildPanel () _material = new Material(Shader.Find("Unlit/Transparent")); else _material = new Material(Shader.Find("Unlit/Texture")); - + _material.SetTexture("_MainTex", _renderTexture); _meshRenderer.sharedMaterial = _material; @@ -178,13 +178,13 @@ public void RebuildPanel () PanelRaycaster panelRaycaster = _panelEventHandler.GetComponent<PanelRaycaster>(); if (panelRaycaster != null) panelRaycaster.enabled = false; - + break; } } } - protected void RefreshPanelSize () + protected void RefreshPanelSize() { if (_renderTexture != null && (_renderTexture.width != _panelWidth || _renderTexture.height != _panelHeight)) { @@ -200,7 +200,7 @@ protected void RefreshPanelSize () transform.localScale = new Vector3(_panelWidth / _pixelsPerUnit, _panelHeight / _pixelsPerUnit, 1.0f); } - protected void DestroyGeneratedAssets () + protected void DestroyGeneratedAssets() { if (_uiDocument) Destroy(_uiDocument); if (_renderTexture) Destroy(_renderTexture); @@ -208,7 +208,7 @@ protected void DestroyGeneratedAssets () if (_material) Destroy(_material); } - void OnDestroy () + void OnDestroy() { DestroyGeneratedAssets(); } @@ -228,70 +228,70 @@ void OnValidate () } #endif -///////////////////////// REDIRECTION OF EVENTS TO THE PANEL + ///////////////////////// REDIRECTION OF EVENTS TO THE PANEL protected readonly HashSet<(BaseEventData, int)> _eventsProcessedInThisFrame = new HashSet<(BaseEventData, int)>(); - void LateUpdate () + void LateUpdate() { _eventsProcessedInThisFrame.Clear(); } - public void OnPointerMove (PointerEventData eventData) + public void OnPointerMove(PointerEventData eventData) { TransformPointerEventForUIToolkit(eventData); _panelEventHandler?.OnPointerMove(eventData); } - public void OnPointerDown (PointerEventData eventData) + public void OnPointerDown(PointerEventData eventData) { TransformPointerEventForUIToolkit(eventData); _panelEventHandler?.OnPointerDown(eventData); } - public void OnPointerUp (PointerEventData eventData) + public void OnPointerUp(PointerEventData eventData) { TransformPointerEventForUIToolkit(eventData); _panelEventHandler?.OnPointerUp(eventData); } - public void OnSubmit (BaseEventData eventData) + public void OnSubmit(BaseEventData eventData) { _panelEventHandler?.OnSubmit(eventData); } - public void OnCancel (BaseEventData eventData) + public void OnCancel(BaseEventData eventData) { _panelEventHandler?.OnCancel(eventData); } - public void OnMove (AxisEventData eventData) + public void OnMove(AxisEventData eventData) { _panelEventHandler?.OnMove(eventData); } - public void OnScroll (PointerEventData eventData) + public void OnScroll(PointerEventData eventData) { TransformPointerEventForUIToolkit(eventData); _panelEventHandler?.OnScroll(eventData); } - public void OnSelect (BaseEventData eventData) + public void OnSelect(BaseEventData eventData) { _panelEventHandler?.OnSelect(eventData); } - public void OnDeselect (BaseEventData eventData) + public void OnDeselect(BaseEventData eventData) { _panelEventHandler?.OnDeselect(eventData); } - public void OnDrag (PointerEventData eventData) + public void OnDrag(PointerEventData eventData) { if (UseDragEventFix) OnPointerMove(eventData); } - protected void TransformPointerEventForUIToolkit (PointerEventData eventData) + protected void TransformPointerEventForUIToolkit(PointerEventData eventData) { var eventKey = (eventData, eventData.pointerId); diff --git a/Assets/Scenes/ArticyTestScene.unity b/Assets/Scenes/ArticyTestScene.unity index a14f354..2da5698 100644 --- a/Assets/Scenes/ArticyTestScene.unity +++ b/Assets/Scenes/ArticyTestScene.unity @@ -123,7 +123,7 @@ NavMeshSettings: debug: m_Flags: 0 m_NavMeshData: {fileID: 0} ---- !u!1 &1185135616 +--- !u!1 &1256801072 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -131,39 +131,111 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1185135622} - - component: {fileID: 1185135621} - - component: {fileID: 1185135620} - - component: {fileID: 1185135619} - - component: {fileID: 1185135618} - - component: {fileID: 1185135617} - - component: {fileID: 1185135623} + - component: {fileID: 1256801075} + - component: {fileID: 1256801074} + - component: {fileID: 1256801073} m_Layer: 0 - m_Name: WorldSpaceDialogueBox - m_TagString: Untagged + m_Name: Main Camera + m_TagString: MainCamera m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!114 &1185135617 -MonoBehaviour: +--- !u!81 &1256801073 +AudioListener: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1185135616} + m_GameObject: {fileID: 1256801072} m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: d52eb85494921dd48be8d847a8298602, type: 3} - m_Name: - m_EditorClassIdentifier: ---- !u!114 &1185135618 +--- !u!20 &1256801074 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1256801072} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_FocalLength: 50 + 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: 0 + 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: 1 + m_AllowMSAA: 1 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!4 &1256801075 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1256801072} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 1, z: -10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1621041051 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1621041057} + - component: {fileID: 1621041056} + - component: {fileID: 1621041055} + - component: {fileID: 1621041054} + - component: {fileID: 1621041053} + - component: {fileID: 1621041058} + - component: {fileID: 1621041059} + m_Layer: 0 + m_Name: WorldSpaceDialogueBox + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1621041053 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1185135616} + m_GameObject: {fileID: 1621041051} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 149237616, guid: df2ec02f61e861546b9427c26ccacb8d, type: 3} @@ -182,13 +254,13 @@ MonoBehaviour: ignoreInvalidBranches: 1 continuouslyRecalculateBranches: 0 continouslyRecalculateInterval: 1 ---- !u!114 &1185135619 +--- !u!114 &1621041054 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1185135616} + m_GameObject: {fileID: 1621041051} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 6df61a9a13528fd4f9365c233cb23bfb, type: 3} @@ -199,14 +271,14 @@ MonoBehaviour: serializedVersion: 2 m_Bits: 4294967295 m_MaxRayIntersections: 10 - m_EventCamera: {fileID: 1256801074} ---- !u!114 &1185135620 + m_EventCamera: {fileID: 0} +--- !u!114 &1621041055 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1185135616} + m_GameObject: {fileID: 1621041051} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: f6a8876d339d1ce4dbb83ea0158084f2, type: 3} @@ -214,15 +286,15 @@ MonoBehaviour: m_EditorClassIdentifier: visualTree: {fileID: 9197481963319205126, guid: 603e8ecda2bc66148be7bc0929e2f25b, type: 3} styleSheet: {fileID: 7433441132597879392, guid: 78ec576a11766354b9c6c1e555acf5e4, type: 3} - worldSpaceUIDocument: {fileID: 1185135621} + worldSpaceUIDocument: {fileID: 1621041056} defaultButtonText: Continue ---- !u!114 &1185135621 +--- !u!114 &1621041056 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1185135616} + m_GameObject: {fileID: 1621041051} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: fbbce919b93a804449b8e74c7b1eec1b, type: 3} @@ -239,28 +311,40 @@ MonoBehaviour: onUIDocumentReady: m_PersistentCalls: m_Calls: [] ---- !u!4 &1185135622 +--- !u!4 &1621041057 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1185135616} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 1.8715975, y: -1.7042671, z: 2.6880367} + m_GameObject: {fileID: 1621041051} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0.17, y: 1.35, z: -9.08} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 3 + m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &1185135623 +--- !u!114 &1621041058 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1621041051} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2a59cd820c99c234fa950e2b034e9fa0, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &1621041059 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1185135616} + m_GameObject: {fileID: 1621041051} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 04f433ebeda01b14092e4f7f84512a40, type: 3} @@ -269,97 +353,13 @@ MonoBehaviour: aPress: instanceId: 0 referencingMode: 0 - lowId: 147 + lowId: 62 highId: 16777216 bPress: instanceId: 0 referencingMode: 0 lowId: 43 highId: 16777216 ---- !u!1 &1256801072 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1256801075} - - component: {fileID: 1256801074} - - component: {fileID: 1256801073} - 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 &1256801073 -AudioListener: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1256801072} - m_Enabled: 1 ---- !u!20 &1256801074 -Camera: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1256801072} - m_Enabled: 1 - serializedVersion: 2 - m_ClearFlags: 1 - m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} - m_projectionMatrixMode: 1 - m_GateFitMode: 2 - m_FOVAxisMode: 0 - m_SensorSize: {x: 36, y: 24} - m_LensShift: {x: 0, y: 0} - m_FocalLength: 50 - 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: 0 - 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: 1 - m_AllowMSAA: 1 - m_AllowDynamicResolution: 0 - m_ForceIntoRT: 0 - m_OcclusionCulling: 1 - m_StereoConvergence: 10 - m_StereoSeparation: 0.022 ---- !u!4 &1256801075 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1256801072} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 1, z: -10} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1933320861 GameObject: m_ObjectHideFlags: 0 @@ -475,61 +475,3 @@ MonoBehaviour: m_ShadowLayerMask: 1 m_LightCookieSize: {x: 1, y: 1} m_LightCookieOffset: {x: 0, y: 0} ---- !u!1001 &2532200149238856781 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 0} - m_Modifications: - - target: {fileID: 2532200149629114469, guid: 283a87519024a9544b7bb2a225211046, type: 3} - propertyPath: m_RootOrder - value: 2 - objectReference: {fileID: 0} - - target: {fileID: 2532200149629114469, guid: 283a87519024a9544b7bb2a225211046, type: 3} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2532200149629114469, guid: 283a87519024a9544b7bb2a225211046, type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2532200149629114469, guid: 283a87519024a9544b7bb2a225211046, type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2532200149629114469, guid: 283a87519024a9544b7bb2a225211046, type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 2532200149629114469, guid: 283a87519024a9544b7bb2a225211046, type: 3} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2532200149629114469, guid: 283a87519024a9544b7bb2a225211046, type: 3} - propertyPath: m_LocalRotation.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2532200149629114469, guid: 283a87519024a9544b7bb2a225211046, type: 3} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2532200149629114469, guid: 283a87519024a9544b7bb2a225211046, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2532200149629114469, guid: 283a87519024a9544b7bb2a225211046, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2532200149629114469, guid: 283a87519024a9544b7bb2a225211046, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2532200149629114479, guid: 283a87519024a9544b7bb2a225211046, type: 3} - propertyPath: m_Name - value: ScreenSpaceDialogueBox - objectReference: {fileID: 0} - m_RemovedComponents: - - {fileID: 2532200149629114478, guid: 283a87519024a9544b7bb2a225211046, type: 3} - m_SourcePrefab: {fileID: 100100000, guid: 283a87519024a9544b7bb2a225211046, type: 3} -- GitLab