diff --git a/popcorn/Assets/MyGame/Prefabs/TutorialObjectMask.prefab b/popcorn/Assets/MyGame/Prefabs/TutorialObjectMask.prefab index 12ad9764..e4f7451c 100644 --- a/popcorn/Assets/MyGame/Prefabs/TutorialObjectMask.prefab +++ b/popcorn/Assets/MyGame/Prefabs/TutorialObjectMask.prefab @@ -1,5 +1,74 @@ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: +--- !u!114 &7372519618091423115 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 530284232912130861} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f752d3a51152f4e44a3ebe45ae24abcc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_FitTarget: {fileID: 0} + m_FitOnLateUpdate: 0 + m_OnlyForChildren: 0 + m_ShowUnmaskGraphic: 1 +--- !u!1 &3742945225465343157 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7550014134400670843} + - component: {fileID: 5618796564699367770} + m_Layer: 5 + m_Name: ArrowTarget + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7550014134400670843 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3742945225465343157} + 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_Children: + - {fileID: 8160253594391034206} + m_Father: {fileID: 4293843006989820480} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 72} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &5618796564699367770 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3742945225465343157} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f752d3a51152f4e44a3ebe45ae24abcc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_FitTarget: {fileID: 0} + m_FitOnLateUpdate: 0 + m_OnlyForChildren: 0 + m_ShowUnmaskGraphic: 1 --- !u!1 &4293843006989820543 GameObject: m_ObjectHideFlags: 0 @@ -33,9 +102,9 @@ RectTransform: m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: + - {fileID: 7550014134400670843} - {fileID: 4293843007976718249} - {fileID: 4293843007207798142} - - {fileID: 8160253594391034206} m_Father: {fileID: 0} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -107,7 +176,9 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: unmask: {fileID: 4293843007976718248} + unmaskArrow: {fileID: 5618796564699367770} unMaskImage: {fileID: 4293843007976718250} + arrowObject: {fileID: 0} --- !u!223 &1057350325820014940 Canvas: m_ObjectHideFlags: 0 @@ -177,7 +248,7 @@ RectTransform: m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 4293843006989820480} - m_RootOrder: 1 + m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 1, y: 1} @@ -265,11 +336,11 @@ RectTransform: m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 4293843006989820480} - m_RootOrder: 0 + m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: 0, y: 441.99997} + m_AnchoredPosition: {x: 0, y: 450} m_SizeDelta: {x: 315.57, y: 128} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &4293843007976718251 @@ -330,13 +401,18 @@ PrefabInstance: m_ObjectHideFlags: 0 serializedVersion: 2 m_Modification: - m_TransformParent: {fileID: 4293843006989820480} + m_TransformParent: {fileID: 7550014134400670843} m_Modifications: - target: {fileID: 570203512630255811, guid: 4c15a47e1d920844fad7ca50f3885536, type: 3} propertyPath: m_Name value: tutorial_Arrow objectReference: {fileID: 0} + - target: {fileID: 5879379603844273524, guid: 4c15a47e1d920844fad7ca50f3885536, + type: 3} + propertyPath: m_RaycastTarget + value: 1 + objectReference: {fileID: 0} - target: {fileID: 8182262933506378416, guid: 4c15a47e1d920844fad7ca50f3885536, type: 3} propertyPath: m_Pivot.x @@ -350,7 +426,7 @@ PrefabInstance: - target: {fileID: 8182262933506378416, guid: 4c15a47e1d920844fad7ca50f3885536, type: 3} propertyPath: m_RootOrder - value: 2 + value: 0 objectReference: {fileID: 0} - target: {fileID: 8182262933506378416, guid: 4c15a47e1d920844fad7ca50f3885536, type: 3} @@ -360,7 +436,7 @@ PrefabInstance: - target: {fileID: 8182262933506378416, guid: 4c15a47e1d920844fad7ca50f3885536, type: 3} propertyPath: m_AnchorMax.y - value: 0.5 + value: 1 objectReference: {fileID: 0} - target: {fileID: 8182262933506378416, guid: 4c15a47e1d920844fad7ca50f3885536, type: 3} @@ -370,7 +446,7 @@ PrefabInstance: - target: {fileID: 8182262933506378416, guid: 4c15a47e1d920844fad7ca50f3885536, type: 3} propertyPath: m_AnchorMin.y - value: 0.5 + value: 1 objectReference: {fileID: 0} - target: {fileID: 8182262933506378416, guid: 4c15a47e1d920844fad7ca50f3885536, type: 3} @@ -405,17 +481,17 @@ PrefabInstance: - target: {fileID: 8182262933506378416, guid: 4c15a47e1d920844fad7ca50f3885536, type: 3} propertyPath: m_LocalRotation.x - value: 0 + value: -0 objectReference: {fileID: 0} - target: {fileID: 8182262933506378416, guid: 4c15a47e1d920844fad7ca50f3885536, type: 3} propertyPath: m_LocalRotation.y - value: 0 + value: -0 objectReference: {fileID: 0} - target: {fileID: 8182262933506378416, guid: 4c15a47e1d920844fad7ca50f3885536, type: 3} propertyPath: m_LocalRotation.z - value: 0 + value: -0 objectReference: {fileID: 0} - target: {fileID: 8182262933506378416, guid: 4c15a47e1d920844fad7ca50f3885536, type: 3} @@ -444,6 +520,12 @@ PrefabInstance: objectReference: {fileID: 0} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 4c15a47e1d920844fad7ca50f3885536, type: 3} +--- !u!1 &530284232912130861 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 570203512630255811, guid: 4c15a47e1d920844fad7ca50f3885536, + type: 3} + m_PrefabInstance: {fileID: 50163713045853166} + m_PrefabAsset: {fileID: 0} --- !u!224 &8160253594391034206 stripped RectTransform: m_CorrespondingSourceObject: {fileID: 8182262933506378416, guid: 4c15a47e1d920844fad7ca50f3885536, diff --git a/popcorn/Assets/MyGame/Scenes/CornField/CornField.unity b/popcorn/Assets/MyGame/Scenes/CornField/CornField.unity index 986185bf..cbbadb45 100644 --- a/popcorn/Assets/MyGame/Scenes/CornField/CornField.unity +++ b/popcorn/Assets/MyGame/Scenes/CornField/CornField.unity @@ -14860,6 +14860,11 @@ PrefabInstance: propertyPath: m_AnchoredPosition.y value: 173.4 objectReference: {fileID: 0} + - target: {fileID: 7550014134400670843, guid: 1c993e9707f1a4fada56020be27dde28, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -565 + objectReference: {fileID: 0} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 1c993e9707f1a4fada56020be27dde28, type: 3} --- !u!1 &2124911062 stripped diff --git a/popcorn/Assets/MyGame/Scenes/Main/Scripts/KitchenManager.cs b/popcorn/Assets/MyGame/Scenes/Main/Scripts/KitchenManager.cs index badeafb7..7efad9bf 100644 --- a/popcorn/Assets/MyGame/Scenes/Main/Scripts/KitchenManager.cs +++ b/popcorn/Assets/MyGame/Scenes/Main/Scripts/KitchenManager.cs @@ -36,7 +36,7 @@ public class KitchenManager : MonoBehaviour var go = FindObjectOfType().transform; go.transform.FindChildByName("Button_field", t => { - TutorialManager.Instance.ShowTutorialMask(go.parent, t as RectTransform); + TutorialManager.Instance.ShowTutorialMask(go.parent, t as RectTransform, true); }); } }); @@ -91,7 +91,7 @@ public class KitchenManager : MonoBehaviour var go = FindObjectOfType().transform; go.transform.FindChildByName("Button_shop", t => { - TutorialManager.Instance.ShowTutorialMask(go.parent, t as RectTransform); + TutorialManager.Instance.ShowTutorialMask(go.parent, t as RectTransform, true); }); }); } diff --git a/popcorn/Assets/MyGame/Scenes/marketing/Scripts/MarketManager.cs b/popcorn/Assets/MyGame/Scenes/marketing/Scripts/MarketManager.cs index 5c3f30a2..b3374e95 100644 --- a/popcorn/Assets/MyGame/Scenes/marketing/Scripts/MarketManager.cs +++ b/popcorn/Assets/MyGame/Scenes/marketing/Scripts/MarketManager.cs @@ -58,6 +58,7 @@ public class MarketManager : MonoBehaviour rewardButtonView.gameObject.SetActive(true); TutorialManager.Instance.ShowTutorialConversation(12); }).AddTo(controller).AddTo(this); + walkerMask.SetTargetArrow(controller.transform); }); } } diff --git a/popcorn/Assets/MyGame/Scenes/shopping/Scripts/Shopping.cs b/popcorn/Assets/MyGame/Scenes/shopping/Scripts/Shopping.cs index 09646ea0..9fda3266 100644 --- a/popcorn/Assets/MyGame/Scenes/shopping/Scripts/Shopping.cs +++ b/popcorn/Assets/MyGame/Scenes/shopping/Scripts/Shopping.cs @@ -70,7 +70,7 @@ public class Shopping : MonoBehaviour var go = FindObjectOfType().transform; go.transform.FindChildByName("Button_Main", t => { - TutorialManager.Instance.ShowTutorialMask(go.parent, t as RectTransform); + TutorialManager.Instance.ShowTutorialMask(go.parent, t as RectTransform, true); }); }); } diff --git a/popcorn/Assets/MyGame/Scripts/TutorialManager.cs b/popcorn/Assets/MyGame/Scripts/TutorialManager.cs index baa09424..1a1979d2 100644 --- a/popcorn/Assets/MyGame/Scripts/TutorialManager.cs +++ b/popcorn/Assets/MyGame/Scripts/TutorialManager.cs @@ -35,10 +35,11 @@ namespace MyGame.Scripts TransitionManager.Instance.LoadSceneAdditive(GameScenes.Conversation); } - public GameObject ShowTutorialMask(Transform parent, RectTransform targetRectTransform) + public GameObject ShowTutorialMask(Transform parent, RectTransform targetRectTransform, bool isFlip = false) { var tutorialObjectMask = Instantiate(maskPrefab, parent); tutorialObjectMask.SetTarget(targetRectTransform); + tutorialObjectMask.SetTargetArrow(targetRectTransform, isFlip); return tutorialObjectMask.gameObject; } } diff --git a/popcorn/Assets/MyGame/Scripts/TutorialObjectMask.cs b/popcorn/Assets/MyGame/Scripts/TutorialObjectMask.cs index c18a1e51..5864209f 100644 --- a/popcorn/Assets/MyGame/Scripts/TutorialObjectMask.cs +++ b/popcorn/Assets/MyGame/Scripts/TutorialObjectMask.cs @@ -7,6 +7,7 @@ namespace MyGame.Scripts public class TutorialObjectMask : MonoBehaviour { [SerializeField] private Unmask unmask; + [SerializeField] private Unmask unmaskArrow; [SerializeField] private Image unMaskImage; public void SetTarget(RectTransform rectTransform) @@ -18,5 +19,49 @@ namespace MyGame.Scripts { unMaskImage.sprite = sprite; } + + public void SetTargetArrow(Transform target, bool isFlip = false, float offset = 200f) + { + // unmaskArrow.FitTo(target); + var rt = unmaskArrow.transform as RectTransform; + + // Debug.Log($"{target.position}, {rt.rect.height}, {target.rect.height/2}, {target.sizeDelta.y/2}"); + // rt.pivot = target.pivot; + rt.position = target.position; + rt.localPosition += (rt.rect.height / 2 + offset) * (isFlip ? Vector3.up : Vector3.down); + rt.rotation = target.rotation; + if (isFlip) + { + rt.rotation = Quaternion.Euler(Vector3.forward * 180); + } + + // var s1 = target.lossyScale; + // var s2 = rt.parent.lossyScale; + // rt.localScale = new Vector3(s1.x / s2.x, s1.y / s2.y, s1.z / s2.z); + // rt.sizeDelta = target.rect.size; + rt.anchorMax = rt.anchorMin = new Vector2(0.5f, 0.5f); + } + + public void SetTargetArrow(RectTransform target, bool isFlip = false, float offset = 200f) + { + // unmaskArrow.FitTo(target); + var rt = unmaskArrow.transform as RectTransform; + + // Debug.Log($"{target.position}, {rt.rect.height}, {target.rect.height/2}, {target.sizeDelta.y/2}"); + rt.pivot = target.pivot; + rt.position = target.position; + rt.localPosition += (rt.rect.height / 2 + target.rect.height / 2 + offset) * (isFlip ? Vector3.up : Vector3.down); + rt.rotation = target.rotation; + if (isFlip) + { + rt.rotation = Quaternion.Euler(Vector3.forward * 180); + } + + var s1 = target.lossyScale; + var s2 = rt.parent.lossyScale; + rt.localScale = new Vector3(s1.x / s2.x, s1.y / s2.y, s1.z / s2.z); + // rt.sizeDelta = target.rect.size; + rt.anchorMax = rt.anchorMin = new Vector2(0.5f, 0.5f); + } } } \ No newline at end of file