Browse Source

798 编辑场景和编辑素材时,蓝色水晶点上方显示该景点的名称

蓝色星空 1 year ago
parent
commit
1f9e6270ea

+ 197 - 0
Assets/Prefab/BluePrefabs/SpotName.prefab

@@ -0,0 +1,197 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &7248445321377733376
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 6160732997819309680}
+  - component: {fileID: 1943017103362978887}
+  - component: {fileID: 7040807331170977070}
+  m_Layer: 5
+  m_Name: Text (Legacy)
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 0
+--- !u!224 &6160732997819309680
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 7248445321377733376}
+  m_LocalRotation: {x: 0, y: 1, z: 0, w: 0}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 0.001, y: 0.001, z: 0.001}
+  m_ConstrainProportionsScale: 0
+  m_Children: []
+  m_Father: {fileID: 1691702385780244935}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 180, z: 0}
+  m_AnchorMin: {x: 0, y: 0.5}
+  m_AnchorMax: {x: 1, y: 0.5}
+  m_AnchoredPosition: {x: 0.17863, y: 0}
+  m_SizeDelta: {x: 171.76273, y: 0.10000001}
+  m_Pivot: {x: 0, y: 0}
+--- !u!222 &1943017103362978887
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 7248445321377733376}
+  m_CullTransparentMesh: 1
+--- !u!114 &7040807331170977070
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 7248445321377733376}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_RaycastTarget: 1
+  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_FontData:
+    m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
+    m_FontSize: 19
+    m_FontStyle: 0
+    m_BestFit: 0
+    m_MinSize: 3
+    m_MaxSize: 40
+    m_Alignment: 4
+    m_AlignByGeometry: 0
+    m_RichText: 1
+    m_HorizontalOverflow: 0
+    m_VerticalOverflow: 1
+    m_LineSpacing: 1
+  m_Text: "\u53CC\u6392\u6247\u5F626_5_\u4E0A\u4E0B"
+--- !u!1 &8948373300025855900
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 1691702385780244935}
+  - component: {fileID: 6820472137488238178}
+  - component: {fileID: 955059637792536376}
+  - component: {fileID: 6256954842875362153}
+  - component: {fileID: 7169546809514429171}
+  m_Layer: 5
+  m_Name: SpotName
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &1691702385780244935
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8948373300025855900}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: -0}
+  m_LocalScale: {x: 2, y: 2, z: 2}
+  m_ConstrainProportionsScale: 0
+  m_Children:
+  - {fileID: 6160732997819309680}
+  m_Father: {fileID: 0}
+  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: 1.1}
+  m_SizeDelta: {x: 0.17863, y: 0.1}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!223 &6820472137488238178
+Canvas:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8948373300025855900}
+  m_Enabled: 1
+  serializedVersion: 3
+  m_RenderMode: 2
+  m_Camera: {fileID: 0}
+  m_PlaneDistance: 100
+  m_PixelPerfect: 0
+  m_ReceivesEvents: 1
+  m_OverrideSorting: 0
+  m_OverridePixelPerfect: 0
+  m_SortingBucketNormalizedSize: 0
+  m_AdditionalShaderChannelsFlag: 0
+  m_SortingLayerID: 0
+  m_SortingOrder: 0
+  m_TargetDisplay: 0
+--- !u!114 &955059637792536376
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8948373300025855900}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, 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
+  m_PresetInfoIsWorld: 0
+--- !u!114 &6256954842875362153
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8948373300025855900}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_IgnoreReversedGraphics: 1
+  m_BlockingObjects: 0
+  m_BlockingMask:
+    serializedVersion: 2
+    m_Bits: 4294967295
+--- !u!114 &7169546809514429171
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8948373300025855900}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: e238eb897171cfa4da9f18363f46e85b, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  spoitText: {fileID: 7040807331170977070}

+ 7 - 0
Assets/Prefab/BluePrefabs/SpotName.prefab.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 72554938046c0d249b1bed4c59fb8d71
+PrefabImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 16 - 0
Assets/Scripts/Blue/Command/EditorSettingCommand.cs

@@ -0,0 +1,16 @@
+using Blue;
+
+public struct EditorSettingCommand : ICommand
+{
+    private bool editor;
+    public EditorSettingCommand(bool editor)
+    {
+        this.editor = editor;
+    }
+    public void OnExcute()
+    {
+        this.SendEvent<EditorSettingEvent>(new EditorSettingEvent(){
+            editor = this.editor
+        });
+    }
+}

+ 11 - 0
Assets/Scripts/Blue/Command/EditorSettingCommand.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: cb1905d99050c59459a2a2308a5cb50e
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 17 - 0
Assets/Scripts/Blue/Command/InstantiateGOCommand.cs

@@ -0,0 +1,17 @@
+using Blue;
+using UnityEngine;
+
+public struct InstantiateGOCommand : ICommand
+{
+    private GameObject prefab;
+    private GameObject parent;
+    public InstantiateGOCommand(GameObject prefab,GameObject parent =null)
+    {
+        this.prefab = prefab;
+        this.parent = parent;
+    }
+    public void OnExcute()
+    {
+        InstantiateSystem.Instance.InstantiatePrefab(prefab,parent);
+    }
+}

+ 11 - 0
Assets/Scripts/Blue/Command/InstantiateGOCommand.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 977e58e0b493b3a4c974d62ae3295c5c
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 2 - 0
Assets/Scripts/Blue/Controller/SavePanel.cs

@@ -78,11 +78,13 @@ public class SavePanel : AbstractController
 
     private void OnEnable()
     {
+        this.SendCommand(new EditorSettingCommand(true){ });
         SetSceneActive.Instance.active = true;
         goReference.SetActive(true);
     }
     private void OnDisable()
     {
+        this.SendCommand(new EditorSettingCommand(false){ } );
         SetSceneActive.Instance.active = false;
         if(goReference!=null)
             goReference.SetActive(false);

+ 31 - 0
Assets/Scripts/Blue/Controller/SpoitNameController.cs

@@ -0,0 +1,31 @@
+using UnityEngine;
+using Blue;
+using UnityEngine.UI;
+
+public class SpoitNameController : AbstractController
+{
+    private Transform target;
+    private bool look;
+    private GameObject child;
+    public Text spoitText;
+    private void Start()
+    {
+        target = GameObject.Find("ARSpaceForAll/mesh_test/SceneRoot/Player").transform;
+        child = transform.GetChild(0).gameObject;
+        spoitText.text = transform.parent.name;
+        this.RegisterEvent<EditorSettingEvent>((e)=>
+        {
+            if(e.editor)
+                child.SetActive(true);
+            else
+                child.SetActive(false);
+            look = e.editor;
+        }).UnRegisterWhenGameObjectDestroyed(gameObject);
+    }
+
+    void Update()
+    {
+        if(look)
+            transform.LookAt(new Vector3(target.position.x, transform.position.y, target.position.z));
+    }
+}

+ 11 - 0
Assets/Scripts/Blue/Controller/SpoitNameController.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: e238eb897171cfa4da9f18363f46e85b
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 9 - 0
Assets/Scripts/Blue/Event/EditorSettingEvent.cs

@@ -0,0 +1,9 @@
+using Blue;
+
+/// <summary>
+/// 编辑场景事件
+/// </summary>
+public struct EditorSettingEvent : IEvent
+{
+    public bool editor;
+}

+ 11 - 0
Assets/Scripts/Blue/Event/EditorSettingEvent.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 4cca84628667a6248bf8acbd80862f3a
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 1 - 0
Assets/Scripts/Blue/ScriptableObject/BlueObject.cs

@@ -7,4 +7,5 @@ public class BlueObject : ScriptableObject
     public GameObject WarningPopUp;
     public string NetErrorText;
     public string SuccessText;
+    public GameObject SpoitName;
 }

+ 2 - 0
Assets/Scripts/Blue/ScriptableObject/PrefabsAsset.asset

@@ -16,3 +16,5 @@ MonoBehaviour:
     type: 3}
   NetErrorText: "\u4FDD\u5B58\u5931\u8D25\\n\u670D\u52A1\u5668\u5F02\u5E38,\u8BF7\u7A0D\u540E\u91CD\u8BD5"
   SuccessText: "\u4FDD\u5B58\u6210\u529F"
+  SpoitName: {fileID: 8948373300025855900, guid: 72554938046c0d249b1bed4c59fb8d71,
+    type: 3}

+ 2 - 2
Assets/Scripts/Blue/System/InstantiateSystem.cs

@@ -10,9 +10,9 @@ public class InstantiateSystem : SingletonMonobehaviour<InstantiateSystem>
 
     public Dictionary<string, GameObject> objDic = new Dictionary<string, GameObject>();
 
-    public void InstantiatePrefab(GameObject prefab)
+    public void InstantiatePrefab(GameObject prefab,GameObject parent =null)
     {
-        Instantiate(prefab);
+        Instantiate(prefab,parent.transform);
     }
 
     public void InstantiatePrefab(GameObject prefab, string content = "")

+ 6 - 2
Assets/Scripts/UI/GameManager.cs

@@ -1,4 +1,4 @@
-using LitJson;
+using LitJson;
 using SC.XR.Unity;
 using System;
 using System.Collections;
@@ -425,7 +425,7 @@ public class GameManager : MonoSingleton<GameManager>
             m_EditorCanvas.position = OpenXRCamera.Instance.head.position + Player.transform.forward + new Vector3(0, 0.5f, 0);
             m_EditorCanvas.eulerAngles = new Vector3(0, OpenXRCamera.Instance.head.eulerAngles.y, 0);
 
-           
+            CommandSystem.Instance.Send( new EditorSettingCommand(true){ } );
         }
         else
         {
@@ -440,6 +440,7 @@ public class GameManager : MonoSingleton<GameManager>
                 m_EditorPanel.ClosePanel();
                 SpoitIndex = -1;
             }
+            CommandSystem.Instance.Send( new EditorSettingCommand(false){ } );
         }
 
     }
@@ -690,6 +691,9 @@ public class GameManager : MonoSingleton<GameManager>
             spoitPos = new Vector3((float)trans.pointRelativeX / WebMapSize.x * MapSize.x, -1f, -(float)trans.pointRelativeY / WebMapSize.y * MapSize.y);
             //创建水晶点
             var obj = Instantiate(CrystalItem, CrystalsParent);
+            CommandSystem.Instance.Send(
+                new InstantiateGOCommand(InstantiateSystem.Instance.BlueObject.SpoitName, obj.gameObject)
+                );
             obj.name = spoit.name;
             obj.transform.localPosition = spoitPos;
             ListCrystals.Add(obj.transform);