Browse Source

更换窗口跟随模式

胡佳骏 1 year ago
parent
commit
befd1aa70a

+ 105 - 0
Assets/FrameWork/ARCamera.prefab

@@ -0,0 +1,105 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &2982234417883321873
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 2852526795804364481}
+  - component: {fileID: 6472444102322518315}
+  - component: {fileID: 8606542125240738706}
+  - component: {fileID: 7011083522712838117}
+  m_Layer: 0
+  m_Name: ARCamera
+  m_TagString: MainCamera
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!4 &2852526795804364481
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2982234417883321873}
+  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!20 &6472444102322518315
+Camera:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2982234417883321873}
+  m_Enabled: 1
+  serializedVersion: 2
+  m_ClearFlags: 2
+  m_BackGroundColor: {r: 0, g: 0, b: 0, a: 1}
+  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.05
+  far clip plane: 2000
+  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: 0
+  m_AllowMSAA: 1
+  m_AllowDynamicResolution: 0
+  m_ForceIntoRT: 0
+  m_OcclusionCulling: 1
+  m_StereoConvergence: 10
+  m_StereoSeparation: 0.022
+--- !u!114 &8606542125240738706
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2982234417883321873}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: -1826476478, guid: 1e108ae5f2133934f948edded555f03e, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  mWorldCenterMode: 2
+  mWorldCenter: {fileID: 0}
+--- !u!114 &7011083522712838117
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2982234417883321873}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: c47f92041efbb4b429a4eafca855ebe3, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 

+ 7 - 0
Assets/FrameWork/ARCamera.prefab.meta

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

+ 1 - 24
Assets/FrameWork/Canvas.prefab

@@ -88,7 +88,6 @@ GameObject:
   - component: {fileID: 8894333160753431137}
   - component: {fileID: 8894333160753431136}
   - component: {fileID: 8894333160753431139}
-  - component: {fileID: 8894333160753431138}
   m_Layer: 5
   m_Name: Canvas
   m_TagString: Untagged
@@ -104,7 +103,7 @@ RectTransform:
   m_PrefabAsset: {fileID: 0}
   m_GameObject: {fileID: 8894333160753431161}
   m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
-  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalPosition: {x: 0, y: 0, z: 1.5}
   m_LocalScale: {x: 0.001, y: 0.001, z: 0.001}
   m_ConstrainProportionsScale: 0
   m_Children:
@@ -191,28 +190,6 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: 948b9ab040508dc48a294230f85b39e2, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
---- !u!114 &8894333160753431138
-MonoBehaviour:
-  m_ObjectHideFlags: 0
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  m_GameObject: {fileID: 8894333160753431161}
-  m_Enabled: 1
-  m_EditorHideFlags: 0
-  m_Script: {fileID: 11500000, guid: 233dbd1d0d0cd8b48b225d0e2f86bbbb, type: 3}
-  m_Name: 
-  m_EditorClassIdentifier: 
-  StopFollower: 0
-  windowDistance: 2
-  windowFollowSpeed: 67.2
-  windowAnchor: 7
-  windowOffset: {x: 0, y: 0}
-  defaultWindowRotation: {x: 0, y: 0}
-  InstantFollowing: 0
-  LinearFollowing: 0
-  menu_size: {x: 0, y: 0}
-  Cam: {fileID: 1279877728}
 --- !u!1 &8894333160868633828
 GameObject:
   m_ObjectHideFlags: 0

+ 29 - 0
Assets/FrameWork/ProjectManager/Scripts/JinRuRenwu.cs

@@ -116,6 +116,7 @@ public class JinRuRenwu : WindowSingleton<JinRuRenwu>
     private void OnDisable()
     {
         LineManager.Instance.stop();
+        WindowGenSui.Instance.jd = 30;
         //RoadManager.Instance.gameObject.SetActive(false);
     }
 
@@ -181,6 +182,29 @@ public class JinRuRenwu : WindowSingleton<JinRuRenwu>
         {
             list[i].SetActive(isOpen);
         }
+        checkJd();
+    }
+
+    void checkJd()
+    {
+        List<GameObject> list = getResGo();
+        int ct=0;
+        for (int i = 0; i < list.Count; i++)
+        {
+            if (list[i].activeSelf)
+            {
+                ct++;
+            }
+        }
+        if (ct >3)
+            WindowGenSui.Instance.jd = 60;
+        else if (ct > 0)
+            WindowGenSui.Instance.jd = 45;
+        else
+        {
+
+            WindowGenSui.Instance.jd = 30;
+        }
     }
     public void closeAll()
     {
@@ -195,18 +219,21 @@ public class JinRuRenwu : WindowSingleton<JinRuRenwu>
     {
         Text.SetActive(!Text.activeSelf);
         Text.transform.SetAsFirstSibling();
+        checkJd();
     }
     public void showImage()
     {
 
         Image.SetActive(!Image.activeSelf);
         Image.transform.SetAsFirstSibling();
+        checkJd();
     }
     public void showImage2()
     {
 
         Image2.SetActive(!Image2.activeSelf);
         Image2.transform.SetAsFirstSibling();
+        checkJd();
     }
 
     public void showModel()
@@ -214,12 +241,14 @@ public class JinRuRenwu : WindowSingleton<JinRuRenwu>
 
         Model.SetActive(!Model.activeSelf);
         Model.transform.SetAsFirstSibling();
+        checkJd();
     }
     public void showVideo()
     {
 
         Video.SetActive(!Video.activeSelf);
         Video.transform.SetAsFirstSibling();
+        checkJd();
     }
 
     public void GotoPaiZhao()

+ 240 - 13
Assets/FrameWork/Scenes/Edustry.unity

@@ -123,7 +123,7 @@ NavMeshSettings:
     debug:
       m_Flags: 0
   m_NavMeshData: {fileID: 0}
---- !u!1 &549249281
+--- !u!1 &249422124
 GameObject:
   m_ObjectHideFlags: 0
   m_CorrespondingSourceObject: {fileID: 0}
@@ -131,35 +131,89 @@ GameObject:
   m_PrefabAsset: {fileID: 0}
   serializedVersion: 6
   m_Component:
-  - component: {fileID: 549249282}
-  - component: {fileID: 549249283}
+  - component: {fileID: 249422125}
+  - component: {fileID: 249422127}
+  - component: {fileID: 249422126}
   m_Layer: 5
-  m_Name: MREduastryStart
+  m_Name: RawImage
   m_TagString: Untagged
   m_Icon: {fileID: 0}
   m_NavMeshLayer: 0
   m_StaticEditorFlags: 0
   m_IsActive: 1
---- !u!224 &549249282
+--- !u!224 &249422125
 RectTransform:
   m_ObjectHideFlags: 0
   m_CorrespondingSourceObject: {fileID: 0}
   m_PrefabInstance: {fileID: 0}
   m_PrefabAsset: {fileID: 0}
-  m_GameObject: {fileID: 549249281}
-  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+  m_GameObject: {fileID: 249422124}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
   m_LocalPosition: {x: 0, y: 0, z: 0}
-  m_LocalScale: {x: 0.001, y: 0.001, z: 0.001}
+  m_LocalScale: {x: 1, y: 1, z: 1}
   m_ConstrainProportionsScale: 0
   m_Children: []
-  m_Father: {fileID: 0}
-  m_RootOrder: 3
+  m_Father: {fileID: 1395925712}
+  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_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 1, y: 1}
   m_AnchoredPosition: {x: 0, y: 0}
-  m_SizeDelta: {x: 100, y: 100}
+  m_SizeDelta: {x: 0, y: 0}
   m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &249422126
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 249422124}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 1344c3c82d62a2a41a3576d8abb8e3ea, 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_Texture: {fileID: 0}
+  m_UVRect:
+    serializedVersion: 2
+    x: 0
+    y: 0
+    width: 1
+    height: 1
+--- !u!222 &249422127
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 249422124}
+  m_CullTransparentMesh: 1
+--- !u!1 &549249281
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 549249285}
+  - component: {fileID: 549249283}
+  - component: {fileID: 549249284}
+  m_Layer: 5
+  m_Name: MREduastryStart
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
 --- !u!114 &549249283
 MonoBehaviour:
   m_ObjectHideFlags: 0
@@ -179,6 +233,78 @@ MonoBehaviour:
   windowItemGameObjectList: []
   windowsConfig: {fileID: 11400000, guid: b605ed4a23ccd7144abbae608329d926, type: 2}
   isStart: 0
+--- !u!114 &549249284
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 549249281}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 25230ae935fb3694a90363ba85ddd6c6, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+--- !u!4 &549249285
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 549249281}
+  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: 3
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &561595122
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 561595123}
+  - component: {fileID: 561595124}
+  m_Layer: 0
+  m_Name: Root
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 0
+--- !u!4 &561595123
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 561595122}
+  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:
+  - {fileID: 1395925712}
+  m_Father: {fileID: 0}
+  m_RootOrder: 4
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &561595124
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 561595122}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 25230ae935fb3694a90363ba85ddd6c6, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
 --- !u!1 &639320401
 GameObject:
   m_ObjectHideFlags: 0
@@ -624,6 +750,107 @@ CanvasRenderer:
   m_PrefabAsset: {fileID: 0}
   m_GameObject: {fileID: 905471632}
   m_CullTransparentMesh: 1
+--- !u!1 &1395925711
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 1395925712}
+  - component: {fileID: 1395925715}
+  - component: {fileID: 1395925714}
+  - component: {fileID: 1395925713}
+  m_Layer: 5
+  m_Name: Canvas
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &1395925712
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1395925711}
+  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 1.5}
+  m_LocalScale: {x: 0.001, y: 0.001, z: 0.001}
+  m_ConstrainProportionsScale: 0
+  m_Children:
+  - {fileID: 249422125}
+  m_Father: {fileID: 561595123}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 0, y: 0}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 1280, y: 720}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &1395925713
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1395925711}
+  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 &1395925714
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1395925711}
+  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: 1
+--- !u!223 &1395925715
+Canvas:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1395925711}
+  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!1 &1551897847
 GameObject:
   m_ObjectHideFlags: 0

+ 1 - 1
Assets/FrameWork/Scripts/Window/WindowsManager.cs

@@ -47,7 +47,7 @@ public class WindowsManager : MonoSingleton<WindowsManager>
         }
        // RoadManager.Instance.gameObject.SetActive(false);
         isStart = true;
-        canvasRoot = GameObject.Instantiate(windowsConfig.canvas);
+        canvasRoot = GameObject.Instantiate(windowsConfig.canvas,this.transform);
         for (int i = 0; i < windowsConfig.initComponent.Count; i++)
         {
            canvasRoot.gameObject.AddComponent(GetTypeByName(windowsConfig.initComponent[i].name));

+ 8 - 0
Assets/FrameWork/Vuforia.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: c94e6db564072e64d850f60b6a5a18d9
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 98 - 0
Assets/FrameWork/Vuforia/VufroiaTrigger.cs

@@ -0,0 +1,98 @@
+using LitJson;
+using System.Collections;
+using System.Collections.Generic;
+using System.IO;
+using UnityEngine;
+using Vuforia;
+using XRTool.Util;
+
+public class VufroiaTrigger:Singleton<VufroiaTrigger>
+{
+    public JsonData msg;
+    public string xmlFile;
+    public string datFile;
+    public static string LoaclxmlFile;
+    public static string LoacldatFile;
+
+    public void init()
+    {
+        xmlFile = msg["vuforiaXML"].ToString();
+        datFile = msg["vuforiaDat"].ToString();
+        LoaclxmlFile = Application.persistentDataPath + "/StreamingAssets/Vuforia/GHZVuforia.xml";
+        LoacldatFile = Application.persistentDataPath + "/StreamingAssets/Vuforia/GHZVuforia.dat";
+
+        /*
+        LoadManager.Instance.loadVuforia(xmlFile, datFile,(bool b)=> {
+
+            isXML = true;
+            if(isData)
+            {
+              GameScene.Instance.StartCoroutine(loadVuforia());
+            }
+
+        }, (bool b) => {
+            isData = true;
+            if (isXML)
+            {
+                GameScene.Instance.StartCoroutine(loadVuforia());
+            }
+        });*/
+    }
+
+
+    IEnumerator loadVuforia()
+    {
+        IEnumerable<ObserverBehaviour> observer = null;
+        observer = VuforiaBehaviour.Instance.ObserverFactory.CreateBehavioursFromDatabase(LoaclxmlFile);
+        try
+        {
+        
+         
+
+        }
+        catch (System.Exception e)
+        {
+           
+          
+        }
+        yield return observer;
+        // Create an Image Target from the database.
+
+        if(observer !=null)
+        {
+            foreach (ObserverBehaviour item in observer)
+            {
+
+            }
+
+        }
+
+       
+
+    }
+
+
+    void OnTargetStatusChanged(ObserverBehaviour behaviour, TargetStatus status)
+    {
+    }
+
+    public void setObVuforia(ObserverBehaviour obVuforia)
+    {;
+
+        obVuforia.OnTargetStatusChanged += OnTargetStatusChanged;
+        obVuforia.gameObject.name = "ImageTarget_" + obVuforia.TargetName;
+        obVuforia.gameObject.AddComponent<TurnOffBehaviour>();
+        if (obVuforia.gameObject.GetComponent<DefaultObserverEventHandler>())
+        {
+            GameObject.Destroy(obVuforia.gameObject.GetComponent<DefaultObserverEventHandler>());
+        }
+        obVuforia.gameObject.AddComponent<DefaultObserverEventHandler>();
+        DefaultObserverEventHandler imageaction = obVuforia.gameObject.GetComponent<DefaultObserverEventHandler>();
+        GameObject obj = new GameObject("Cube");
+        obj.transform.parent = imageaction.transform;
+        obj.transform.localEulerAngles = new Vector3(90, 0, 0);
+        obj.transform.localPosition = Vector3.zero;
+
+    }
+
+}

+ 11 - 0
Assets/FrameWork/Vuforia/VufroiaTrigger.cs.meta

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

+ 2 - 0
Assets/FrameWork/WindowsItem.asset

@@ -32,6 +32,8 @@ MonoBehaviour:
       obj: {fileID: 7739848644434074493, guid: 9141e91581324b047921c80a679c051b, type: 3}
     - name: qiangti
       obj: {fileID: 3649401808606158665, guid: 2f4fc9d487948a64e817748abaee2192, type: 3}
+    - name: Vuforia
+      obj: {fileID: 2982234417883321873, guid: 2e8dc0fb6f1802f47b906140b331d01b, type: 3}
     type: 200001
   listTexture:
   - PrefabList:

+ 8 - 0
Assets/Resources.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: c3703dea6761cc04cadf83d184c85fa0
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 50 - 0
Assets/Resources/VuforiaConfiguration.asset

@@ -0,0 +1,50 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &11400000
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 0}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: -2067402452, guid: 1e108ae5f2133934f948edded555f03e, type: 3}
+  m_Name: VuforiaConfiguration
+  m_EditorClassIdentifier: 
+  vuforia:
+    vuforiaLicenseKey: AVdaifr/////AAABmTxtN/ZN0Eg+uuJIO4iBD7dsw2+y7PFk/RTJIeK591PAPZFHjA0YUX2pybiHDZk+xm0fFr2tLCDPOwMR8S/wxajuVOXUYDkGA8NlzQiNbSfQyFSEFLS92UNrOQO0dnMwsTnZKS0VUhk+Xh9bYy4Iv7lfQ8fPvG6/DSQ/qfSrn8IbZsQ3Dl2MomN1VAO5YPXSQwjCyY8Lncu6XwJXfrxZoDvBJkDDnp5NiWhlqdiYi/ZewaJyrhAE1tImEkTKR4B4bu2VE1n8qaXCEFmRGtX2SLYiCchylxYXzYnF9DwTlLOVvY/3vXnuJ8VPhaUtAM8xIrk072ZL5lvBnVJ508LHC5vzzWJcLBI8pDmS9p6BcU1D
+    ufoLicenseKey: QWJlVVByci8vLy8vQUFBQUtDY1c0dVhITTBLbG1WbGV1Z3lCWGVrZGRVTy9PeDJTM3IrTWdSckRsekswWG5hRC9zQmt5elNHRkpCUHcrdkFmbytQRXJQMG5TZ1hzQVBtUEs4SVhsZXoxVVQwYlB4WWZRMjZjYXpXQ1RMUW1wcEVJcnVJUXRDSDhJYjVFVUx1Y1ZPRUdaNjJ0L3JmanlWT0VFbVRURCszTmpOazc4dWxEYTFJWXBEdUR5L0dXVExOdXVFY0RQVmVzZExYWGpIaHVDMnlMWXpjek9QbXdiZElkZzdGUGgxOEF4MUVRb0hrdG0xb3dRbGdLZysyRmhBMUxtajJGRk41N2xBQk15WkFDMlVlRmRRNEJTcFRWYzRiTVlxcW5uZTdxdUR4aWV1U2s2YlBKS085TkxKSTBkcE8zYmtGWWZ2WlNMUEM0V0F2R2ZMb0xZWTQ3UkJ3NFhxajJaQ2ZXcDFFbzQ0UWlub3pqQkgyVTlPdUtka0w=
+    delayedInitialization: 0
+    cameraFocusModeSetting: 2
+    cameraDeviceModeSetting: -1
+    maxSimultaneousImageTargets: 1
+    virtualSceneScaleFactor: 1
+    modelTargetRecoWhileExtendedTracked: 1
+    shareRecordingsInITunes: 0
+    logLevel: 0
+    version: 10.13.3
+    eulaAcceptedVersions: '{"Values":["8.5","7.5","8.3","7.2","7.1","8.0","7.7","8.1","0.0","9.2","9.4","10.10","10.11","10.12","10.13","9.8","10.3","10.2","9.1","10.15","9.7"]}'
+  database:
+    disableModelExtraction: 0
+  shaders:
+    depthMaskShader: {fileID: 4800000, guid: 1ce7eb78425fb1540838bc9d5d95857a, type: 3}
+    outlineShader: {fileID: 4800000, guid: c1ded68d068051d4f92650fcddaae5c7, type: 3}
+    unlitTransparentShader: {fileID: 10750, guid: 0000000000000000f000000000000000, type: 0}
+  videoBackground:
+    numDivisions: 2
+    videoBackgroundShader: {fileID: 4800000, guid: f40623b353e2f1943b1b3ba42975db7a, type: 3}
+    unlitShader: {fileID: 10752, guid: 0000000000000000f000000000000000, type: 0}
+    videoBackgroundEnabled: 1
+  deviceTracker:
+    autoStartTracker: 0
+    arcoreRequirement: 1
+    autoImportArcore: 1
+    thirdPartyARCoreClientDetected: 0
+  playmode:
+    mSequencePath: 
+    playModeType: 0
+  webcam:
+    renderTextureLayer: 30
+  packageInformation:
+    ARFoundationVersion: 

+ 8 - 0
Assets/Resources/VuforiaConfiguration.asset.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 0d173ab8b2440e3418dc1a0d1023affc
+NativeFormatImporter:
+  externalObjects: {}
+  mainObjectFileID: 11400000
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 53 - 0
Assets/WindowGenSui.cs

@@ -0,0 +1,53 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+public class WindowGenSui : MonoSingleton<WindowGenSui>
+{
+
+    public float jd = 30;
+
+    // Update is called once per frame
+    void Update()
+    {
+        this.transform.position = OpenXRCamera.Instance.head.position;
+        float f = Mathf.Abs(this.transform.eulerAngles.y - OpenXRCamera.Instance.head.eulerAngles.y) - jd;
+        if (this.transform.eulerAngles.y - OpenXRCamera.Instance.head.eulerAngles.y >= jd&& this.transform.eulerAngles.y - OpenXRCamera.Instance.head.eulerAngles.y < jd+180)
+        {
+            if (Mathf.Abs(this.transform.eulerAngles.y - OpenXRCamera.Instance.head.eulerAngles.y) > 180)
+            {
+
+                transform.RotateAround(Vector3.zero, Vector3.up,f);
+            }
+            else
+            {
+                transform.RotateAround(Vector3.zero, Vector3.up, -f);
+
+            }
+        }
+        else if (this.transform.eulerAngles.y - OpenXRCamera.Instance.head.eulerAngles.y < -jd && this.transform.eulerAngles.y - OpenXRCamera.Instance.head.eulerAngles.y > -jd - 180)
+        {
+            if (Mathf.Abs(this.transform.eulerAngles.y - OpenXRCamera.Instance.head.eulerAngles.y) > 180)
+            {
+
+                transform.RotateAround(Vector3.zero, Vector3.up, -f);
+            }
+            else
+            {
+                transform.RotateAround(Vector3.zero, Vector3.up,f);
+
+            }
+
+        }
+        else if (360 -(this.transform.eulerAngles.y - OpenXRCamera.Instance.head.eulerAngles.y) >= jd && 360 - (this.transform.eulerAngles.y - OpenXRCamera.Instance.head.eulerAngles.y) < 180)
+        {
+            transform.RotateAround(Vector3.zero, Vector3.up, -jd - 360 - (this.transform.eulerAngles.y - OpenXRCamera.Instance.head.eulerAngles.y));
+
+        }
+        else if(360 + (this.transform.eulerAngles.y - OpenXRCamera.Instance.head.eulerAngles.y) >= jd && 360 + (this.transform.eulerAngles.y - OpenXRCamera.Instance.head.eulerAngles.y)<180)
+        {
+
+            transform.RotateAround(Vector3.zero, Vector3.up, jd - (360 + (this.transform.eulerAngles.y - OpenXRCamera.Instance.head.eulerAngles.y)));
+        }
+    }
+}

+ 11 - 0
Assets/WindowGenSui.cs.meta

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