Browse Source

下载上传Command,保存面板修改,Service

GetScenePosRotEvent :成功获取点Pos、Rot信息
ScenePosRotInfo:信息,第一组为Pos,第二组为Rot
MoveChange取消第一次设置值,由事件触发后设置
蓝色星空 1 year ago
parent
commit
67de58cced

+ 94 - 2
Assets/Prefab/BluePrefabs/BlueRoot.prefab

@@ -74,7 +74,7 @@ Transform:
   m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 5886227751517987777}
-  m_RootOrder: 2
+  m_RootOrder: 3
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 --- !u!114 &4085329947062313590
 MonoBehaviour:
@@ -120,7 +120,7 @@ Transform:
   m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 5886227751517987777}
-  m_RootOrder: 3
+  m_RootOrder: 4
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 --- !u!114 &5122960243441828857
 MonoBehaviour:
@@ -136,6 +136,52 @@ MonoBehaviour:
   m_EditorClassIdentifier: 
   moveGame: {fileID: 0}
   parent: {fileID: 0}
+--- !u!1 &3255320335503680843
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 1263283691747613010}
+  - component: {fileID: 1850852233735434126}
+  m_Layer: 0
+  m_Name: GetScenePosRot
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!4 &1263283691747613010
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 3255320335503680843}
+  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: 5886227751517987777}
+  m_RootOrder: 2
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &1850852233735434126
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 3255320335503680843}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 3e5a86f83b8582144a4929f62a385b91, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  meshTest: {fileID: 0}
+  meshTestParent: {fileID: 0}
 --- !u!1 &4965398655029255260
 GameObject:
   m_ObjectHideFlags: 0
@@ -169,8 +215,10 @@ Transform:
   m_Children:
   - {fileID: 5192568582079240754}
   - {fileID: 1004673916}
+  - {fileID: 1263283691747613010}
   - {fileID: 1691766442}
   - {fileID: 3490034733957922214}
+  - {fileID: 8294022177412783077}
   m_Father: {fileID: 0}
   m_RootOrder: 0
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@@ -211,6 +259,50 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: 7edfff1461ac83640bd4012b59d97201, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
+--- !u!1 &8366907603109842081
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 8294022177412783077}
+  - component: {fileID: 6071567358264610956}
+  m_Layer: 0
+  m_Name: Test
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 0
+--- !u!4 &8294022177412783077
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8366907603109842081}
+  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: 5886227751517987777}
+  m_RootOrder: 5
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &6071567358264610956
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8366907603109842081}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 2e742d2054384974caba689da07cf01f, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
 --- !u!1 &8893702449747549102
 GameObject:
   m_ObjectHideFlags: 0

+ 19 - 0
Assets/Scripts/Blue/Command/DownloadCommand.cs

@@ -0,0 +1,19 @@
+using Blue;
+using System;
+using System.Collections.Generic;
+
+/// <summary>
+/// ÏÂÔØÒÆ¶¯³¡¾°µÄPostion¡¢Rotatiuon
+/// </summary>
+public class DownloadCommand : ICommand
+{
+    private string Url;
+    public DownloadCommand(string Url )
+    {
+        this.Url = Url;
+    }
+    public void OnExcute()
+    {
+        this.GetService<IUpOrDownloadService>().GetScenePosRot(Url);
+    }
+}

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

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

+ 19 - 0
Assets/Scripts/Blue/Command/UploadCommand.cs

@@ -0,0 +1,19 @@
+using Blue;
+
+/// <summary>
+/// ÉÏ´«Òƶ¯³¡¾°µÄPostion¡¢Rotatiuon
+/// </summary>
+public class UploadCommand : ICommand
+{
+    private string Url;
+    private string JsonString;
+    public UploadCommand(string Url, string JsonString)
+    {
+        this.Url = Url;
+        this.JsonString = JsonString;
+    }
+    public void OnExcute()
+    {
+        this.GetService<IUpOrDownloadService>().UploadScenePosRot(Url,JsonString);
+    }
+}

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

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

+ 30 - 0
Assets/Scripts/Blue/Controller/GetScenePosRot.cs

@@ -0,0 +1,30 @@
+using Blue;
+using UnityEngine;
+
+public class GetScenePosRot : AbstractController
+{
+    public Transform meshTest;
+    public Transform meshTestParent;
+    private void Awake()
+    {
+        meshTestParent = GameObject.Find("ARSpaceForAll").transform;
+        meshTest = GameObject.Find("ARSpaceForAll/mesh_test").gameObject.transform;
+        this.SubscribeEvent<GetScenePosRotEvent>(GetScenePosRotSuccess).UnSubScribeWhenGameObjectDestroyed(gameObject);
+    }
+
+    private void GetScenePosRotSuccess(GetScenePosRotEvent e)
+    {
+        Vector3 pos = new Vector3(e.PosRot[0].x, e.PosRot[0].y, e.PosRot[0].z);
+        Vector3 rot = new Vector3(e.PosRot[1].x, e.PosRot[1].y, e.PosRot[1].z);
+        SetPosRot(pos,rot);
+    }
+
+    private void SetPosRot(Vector3 pos,Vector3 rot)
+    {
+        meshTest.transform.parent = meshTestParent;
+
+        meshTest.transform.localPosition = pos;
+
+        meshTest.transform.localEulerAngles = rot;
+    }
+}

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

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

+ 29 - 8
Assets/Scripts/Blue/Controller/SavePanel.cs

@@ -1,4 +1,7 @@
+using Blue;
+using Newtonsoft.Json;
 using SC.XR.Unity;
+using System.Collections.Generic;
 using UnityEngine;
 using UnityEngine.UI;
 
@@ -10,13 +13,19 @@ public class SavePanel : AbstractController
     public Transform parent;
     public SCToggleSwitch3D sCToggleSwitch3D;
     [SerializeField] private GameObject ARMap;
+
+    private List<ScenePosRotInfo> posRotlist = new List<ScenePosRotInfo>();
+    private ScenePosRotInfo pos = new ScenePosRotInfo();
+    private ScenePosRotInfo rot = new ScenePosRotInfo();
     private void Start()
     {
+        posRotlist.Add(pos); posRotlist.Add(rot);
         meshTest = GameObject.Find("ARSpaceForAll/mesh_test").gameObject.transform;
         parent = GameObject.Find("ARSpaceForAll").transform;
         ARMap = GameObject.Find("ARSpaceForAll/AR_Map");
         ARMap.SetActive(false);
         sCToggleSwitch3D = transform.parent.GetComponent<SCToggleSwitch3D>();
+
         saveBtn.onClick.AddListener(Save);
         cancleBtn.onClick.AddListener(Cancle);
     }
@@ -24,10 +33,16 @@ public class SavePanel : AbstractController
     private void Save()
     {
         meshTest.transform.parent = parent;
-        PlayerPrefs.SetFloat("meshTest_PosX", meshTest.localPosition.x);
-        PlayerPrefs.SetFloat("meshTest_PosZ", meshTest.localPosition.z);
-        PlayerPrefs.SetFloat("meshTest_RotY", meshTest.localEulerAngles.y);
 
+        pos.x = meshTest.localPosition.x; 
+        pos.y = meshTest.localPosition.y; 
+        pos.z = meshTest.localPosition.z;
+        rot.x = meshTest.localEulerAngles.x; 
+        rot.y = meshTest.localEulerAngles.y; 
+        rot.z = meshTest.localEulerAngles.x;
+        string jsonString = JsonConvert.SerializeObject(posRotlist);
+
+        this.SendCommand(new UploadCommand(this.GetService<IUpOrDownloadService>().URL, jsonString));
         sCToggleSwitch3D.isOn = false;
         gameObject.SetActive(false);
     }
@@ -35,13 +50,19 @@ public class SavePanel : AbstractController
     private void Cancle()
     {
         meshTest.transform.parent = parent;
-        float posX = PlayerPrefs.GetFloat("meshTest_PosX");
-        float posZ = PlayerPrefs.GetFloat("meshTest_PosZ");
-        Vector3 pos = new Vector3(posX, 0, posZ);
+        posRotlist = this.GetService<IUpOrDownloadService>().PosRot;
+
+        float posX = posRotlist[0].x;
+        float posY = posRotlist[0].y;
+        float posZ = posRotlist[0].z;
+
+        Vector3 pos = new Vector3(posX, posY, posZ);
         meshTest.localPosition = pos;
 
-        float rotY = PlayerPrefs.GetFloat("meshTest_RotY");
-        meshTest.localEulerAngles = new Vector3(0, rotY, 0);
+        float rotX = posRotlist[1].x;
+        float rotY = posRotlist[1].y;
+        float rotZ = posRotlist[1].z;
+        meshTest.localEulerAngles = new Vector3(rotX, rotY, rotZ);
 
         sCToggleSwitch3D.isOn = false;
         gameObject.SetActive(false);

+ 7 - 0
Assets/Scripts/Blue/Event/GetScenePosRotEvent.cs

@@ -0,0 +1,7 @@
+using Blue;
+using System.Collections.Generic;
+
+public class GetScenePosRotEvent : IEvent
+{
+    public List<ScenePosRotInfo> PosRot;
+}

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

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

+ 1 - 0
Assets/Scripts/Blue/MRNavigatorPro.cs

@@ -17,6 +17,7 @@ public class MRNavigatorPro : AbstractArchitecture<MRNavigatorPro>
     private void RegisterService()
     {
         this.RegisterService<ISendLogService>(new SendLogService());
+        this.RegisterService<IUpOrDownloadService>(new UpOrDownloadService());
     }
 
     private void RegisterUtility()

+ 6 - 0
Assets/Scripts/Blue/Other/ScenePosRotInfo.cs

@@ -0,0 +1,6 @@
+public class ScenePosRotInfo
+{
+    public float x { get; set; }
+    public float y { get; set; }
+    public float z { get; set; }
+}

+ 11 - 0
Assets/Scripts/Blue/Other/ScenePosRotInfo.cs.meta

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

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

@@ -6,4 +6,5 @@ public class BlueObject : ScriptableObject
     //可以包含更多的数据,信息
     public GameObject WarningPopUp;
     public string NetErrorText;
+    public string SuccessText;
 }

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

@@ -15,3 +15,4 @@ MonoBehaviour:
   WarningPopUp: {fileID: 2160148988178575977, guid: 725f0ac354735774cbc2e7c450ccb350,
     type: 3}
   NetErrorText: "\u4FDD\u5B58\u5931\u8D25\\n\u670D\u52A1\u5668\u5F02\u5E38,\u8BF7\u7A0D\u540E\u91CD\u8BD5"
+  SuccessText: "\u4FDD\u5B58\u6210\u529F"

+ 118 - 0
Assets/Scripts/Blue/Service/IUpOrDownloadService.cs

@@ -0,0 +1,118 @@
+using Blue;
+using LitJson;
+using Newtonsoft.Json;
+using Newtonsoft.Json.Linq;
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Text;
+using UnityEngine;
+using UnityEngine.Networking;
+
+public interface IUpOrDownloadService : IService
+{
+    List<ScenePosRotInfo> PosRot { get; }
+    string URL { get; }
+    void GetScenePosRot(string Url);
+    void UploadScenePosRot(string Url, string JsonString);
+}
+
+public class UpOrDownloadService : IUpOrDownloadService
+{
+    public List<ScenePosRotInfo> PosRot { get; private set; }
+    public string URL { get; private set; }
+
+    public void OnInit()
+    {
+
+    }
+
+
+
+    void IUpOrDownloadService.GetScenePosRot(string Url)
+    {
+        RootSystem.Instance.StartCoroutine(GetScenePosRotRequest(Url));
+    }
+
+    void IUpOrDownloadService.UploadScenePosRot(string Url, string JsonString)
+    {
+        RootSystem.Instance.StartCoroutine(RequestUpload(Url,JsonString));
+    }
+
+    private IEnumerator GetScenePosRotRequest(string Url)
+    {
+        using (UnityWebRequest webRequest = UnityWebRequest.Get(Url))
+        {
+            webRequest.SetRequestHeader("authorization", HttpTool.Instance.Token);
+
+            //ÉèÖÃheader
+            foreach (var v in HttpTool.Instance.RequestHeader)
+            {
+                webRequest.SetRequestHeader(v.Key, v.Value);
+            }
+            yield return webRequest.SendWebRequest();
+
+            if (webRequest.result== UnityWebRequest.Result.ProtocolError || webRequest.result == UnityWebRequest.Result.ConnectionError)
+                Debug.LogError("UnityWebRequest Error");
+            else
+            {
+                if (!string.IsNullOrWhiteSpace(webRequest.downloadHandler.text))
+                {
+                    string message = webRequest.downloadHandler.text;
+                    JObject jobject = JObject.Parse(message);
+                    if (jobject["code"].ToString() == "200")
+                    {
+                        message = jobject["data"].ToString();
+                        if (!string.IsNullOrWhiteSpace(message))
+                        {
+                            List<ScenePosRotInfo> ScenePosRotInfoList = JsonConvert.DeserializeObject<List<ScenePosRotInfo>>(message);
+                            PosRot = ScenePosRotInfoList;
+                            URL = Url;
+                            this.TriggerEvent(new GetScenePosRotEvent() { PosRot = PosRot });
+                        }
+                    }
+                }
+            }
+        }
+    }
+
+    public IEnumerator RequestUpload(string Url, string jsonString)
+    {
+        using (UnityWebRequest webRequest = new UnityWebRequest(Url, "POST"))
+        {
+            JsonData data = JsonMapper.ToObject(jsonString);
+            JsonData d2 = new JsonData();
+            d2["position"] = data;
+            byte[] bodyRaw = Encoding.UTF8.GetBytes(d2.ToJson());
+
+            webRequest.uploadHandler = (UploadHandler)new UploadHandlerRaw(bodyRaw);
+            //webRequest.downloadHandler = new DownloadHandlerBuffer();
+
+            webRequest.SetRequestHeader("Content-Type", "application/json;charset=utf-8");
+            webRequest.SetRequestHeader("authorization", HttpTool.Instance.Token);
+            foreach (var v in HttpTool.Instance.RequestHeader)
+            {
+                webRequest.SetRequestHeader(v.Key, v.Value);
+            }
+
+            yield return webRequest.SendWebRequest();
+
+            if (webRequest.result == UnityWebRequest.Result.ProtocolError || webRequest.result == UnityWebRequest.Result.ConnectionError)
+            {
+                Debug.LogError(webRequest.downloadHandler.error);
+                InstantiateCommand Command = new InstantiateCommand(
+                    InstantiateSystem.Instance.BlueObject.WarningPopUp,
+                    InstantiateSystem.Instance.BlueObject.NetErrorText);
+                CommandExtensionSystem.Instance.Send(Command);
+            }
+            else
+            {
+                Debug.LogError("Upload Success");
+                InstantiateCommand Command = new InstantiateCommand(
+                    InstantiateSystem.Instance.BlueObject.WarningPopUp,
+                    InstantiateSystem.Instance.BlueObject.SuccessText);
+                CommandExtensionSystem.Instance.Send(Command);
+            }
+        }
+    }
+}

+ 11 - 0
Assets/Scripts/Blue/Service/IUpOrDownloadService.cs.meta

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

+ 1 - 12
Assets/Scripts/Blue/Temp/MoveChange.cs

@@ -12,21 +12,10 @@ public class MoveChange : MonoBehaviour
     {
         moveGame = GameObject.Find("ARSpaceForAll/mesh_test");
         parent = GameObject.Find("ARSpaceForAll").transform;
-        SetPosRot();
+
         DispatcherBase.KeyDownDelegateRegister(keyDownEventDelegate);
         DispatcherBase.KeyUpDelegateRegister(keyUpEventDelegate);
     }
-
-    private void SetPosRot()
-    {
-        float posX = PlayerPrefs.GetFloat("meshTest_PosX");
-        float posZ = PlayerPrefs.GetFloat("meshTest_PosZ");
-        Vector3 pos = new Vector3(posX, 0, posZ);
-        moveGame.transform.localPosition = pos;
-
-        float rotY = PlayerPrefs.GetFloat("meshTest_RotY");
-        moveGame.transform.localEulerAngles = new Vector3(0, rotY, 0);
-    }
     private void keyUpEventDelegate(InputKeyCode keyCode, InputDevicePartBase part)
     {
         Debug.Log("keyDownEventDelegate===>" + keyCode);

+ 28 - 0
Assets/Scripts/Blue/Test/BlueTest.cs

@@ -0,0 +1,28 @@
+using System.Collections.Generic;
+using Blue;
+using Newtonsoft.Json;
+using UnityEngine;
+
+public class BlueTest : AbstractController
+{
+    void Update()
+    {
+        if(Input.GetKeyDown(KeyCode.L))
+        {
+            List<ScenePosRotInfo> list = new List<ScenePosRotInfo>();
+            ScenePosRotInfo pos = new ScenePosRotInfo();
+            ScenePosRotInfo rot = new ScenePosRotInfo();
+            pos.x = 1;pos.y = 1;pos.z = 1;
+            rot.x = 2;rot.y = 2;;rot.z = 2;
+            list.Add(pos);list.Add(rot);
+            string jsonString = JsonConvert.SerializeObject(list);
+            string url = "https://api-fat1.ghz-tech.com/mr-navigator/v1/project/position/396";
+            //HttpTool.Instance.UploadScenePosRot(url,jsonString,CallBack);
+            //this.SendCommand(new UploadCommand(url, HttpTool.Instance.RequestHeader, HttpTool.Instance.Token, jsonString));
+        }
+    }
+    private void CallBack(string e)
+    {
+        Debug.LogError(e);
+    }
+}

+ 11 - 0
Assets/Scripts/Blue/Test/BlueTest.cs.meta

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

+ 10 - 1
Assets/Scripts/UI/SceneChoose.cs

@@ -1,4 +1,4 @@
-using LitJson;
+using LitJson;
 using Newtonsoft.Json.Linq;
 using SC.XR.Unity;
 using System;
@@ -100,6 +100,7 @@ public class SceneChoose : BaseUI
 
             DownLoadFile(detail.id,"json");
             DownLoadFile(detail.id,"bytes");
+            GetScenePosRot(detail.id,"bytes");
 
             HttpTool.Instance.PostTest("/project/detail", str, (mes) =>
             {
@@ -153,6 +154,14 @@ public class SceneChoose : BaseUI
                 }
         });
     }
+
+    private void GetScenePosRot(int projectId,string fileType)
+    {
+        string url = "https://api-fat1.ghz-tech.com/mr-navigator/v1/project/position/"+ projectId.ToString();
+
+        this.SendCommand(new DownloadCommand(url));
+    }
+
     private void GetSNInit()
     {
         // 选择场景