|
@@ -1,4 +1,5 @@
|
|
|
using SC.XR.Unity.Module_InputSystem;
|
|
|
+using System;
|
|
|
using System.Collections;
|
|
|
using System.Collections.Generic;
|
|
|
using System.IO;
|
|
@@ -52,7 +53,7 @@ public class ModelList: System.ICloneable
|
|
|
_model = new GameObject(name);
|
|
|
_model.transform.parent = materalLibrary;
|
|
|
|
|
|
- InitObjectTransform();
|
|
|
+
|
|
|
_model.SetActive(false);
|
|
|
|
|
|
}
|
|
@@ -124,10 +125,16 @@ public class ModelList: System.ICloneable
|
|
|
else
|
|
|
return objectTransform.nowScale;
|
|
|
}
|
|
|
-
|
|
|
- private void InitObjectTransform()
|
|
|
+ bool iscreate = false;
|
|
|
+ private void InitObjectTransform(Action callback)
|
|
|
{
|
|
|
- if(objectTransform==null)
|
|
|
+ if(iscreate)
|
|
|
+ {
|
|
|
+ callback.Invoke();
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ iscreate = true;
|
|
|
+ if (objectTransform==null)
|
|
|
{
|
|
|
objectTransform = new ObjectTransform();
|
|
|
|
|
@@ -149,13 +156,13 @@ public class ModelList: System.ICloneable
|
|
|
case (int)MaterialType.Model:
|
|
|
case (int)MaterialType.Text:
|
|
|
case (int)MaterialType.LocaImage:
|
|
|
- GameManager.Instance.StartCoroutine( CreateSuCaiObj(this, Model));
|
|
|
+ GameManager.Instance.StartCoroutine(CreateSuCaiObj(this, Model, callback));
|
|
|
break;
|
|
|
case (int)MaterialType.Image_Video_Text:
|
|
|
- GameManager.Instance.StartCoroutine(CreateImage_Video_Text(this, Model));
|
|
|
+ GameManager.Instance.StartCoroutine(CreateImage_Video_Text(this, Model,callback));
|
|
|
break;
|
|
|
case (int)MaterialType.Model_Text:
|
|
|
- GameManager.Instance.StartCoroutine(CreateModel_Text(this, Model));
|
|
|
+ GameManager.Instance.StartCoroutine(CreateModel_Text(this, Model, callback));
|
|
|
break;
|
|
|
default:
|
|
|
break;
|
|
@@ -168,7 +175,7 @@ public class ModelList: System.ICloneable
|
|
|
|
|
|
|
|
|
|
|
|
- private IEnumerator CreateSuCaiObj(ModelList material, GameObject spoit)
|
|
|
+ private IEnumerator CreateSuCaiObj(ModelList material, GameObject spoit, Action callback)
|
|
|
{
|
|
|
List<ObjectValue> objects = new List<ObjectValue>();
|
|
|
List<ModelItem> objs = material.materialList;
|
|
@@ -181,7 +188,7 @@ public class ModelList: System.ICloneable
|
|
|
case (int)MaterialType.None:
|
|
|
break;
|
|
|
case (int)MaterialType.Image:
|
|
|
- var pImage = ResMgr.Instance.LoadAsync<GameObject>("Template/Prefab/Image");
|
|
|
+ var pImage = ResMgr.Instance.LoadAsync<GameObject>("Image");
|
|
|
yield return pImage;
|
|
|
go = GameObject.Instantiate(pImage.asset as GameObject, spoit.transform);
|
|
|
go.SetActive(true);
|
|
@@ -190,7 +197,7 @@ public class ModelList: System.ICloneable
|
|
|
|
|
|
break;
|
|
|
case (int)MaterialType.Video:
|
|
|
- var pVideo = ResMgr.Instance.LoadAsync<GameObject>("Template/Prefab/Video");
|
|
|
+ var pVideo = ResMgr.Instance.LoadAsync<GameObject>("Video");
|
|
|
yield return pVideo;
|
|
|
go = GameObject.Instantiate(pVideo.asset as GameObject, spoit.transform);
|
|
|
go.SetActive(true);
|
|
@@ -201,7 +208,7 @@ public class ModelList: System.ICloneable
|
|
|
|
|
|
break;
|
|
|
case (int)MaterialType.Model:
|
|
|
- var pModel = ResMgr.Instance.LoadAsync<GameObject>("Template/Prefab/Model");
|
|
|
+ var pModel = ResMgr.Instance.LoadAsync<GameObject>("Model");
|
|
|
yield return pModel;
|
|
|
go = GameObject.Instantiate(pModel.asset as GameObject, spoit.transform);
|
|
|
go.SetActive(true);
|
|
@@ -211,7 +218,7 @@ public class ModelList: System.ICloneable
|
|
|
|
|
|
break;
|
|
|
case (int)MaterialType.Text:
|
|
|
- var pText = ResMgr.Instance.LoadAsync<GameObject>("Template/Prefab/Text");
|
|
|
+ var pText = ResMgr.Instance.LoadAsync<GameObject>("Text");
|
|
|
yield return pText;
|
|
|
go = GameObject.Instantiate(pText.asset as GameObject, spoit.transform);
|
|
|
go.SetActive(true);
|
|
@@ -220,7 +227,7 @@ public class ModelList: System.ICloneable
|
|
|
|
|
|
break;
|
|
|
case (int)MaterialType.LocaImage:
|
|
|
- var pLocaImage = ResMgr.Instance.LoadAsync<GameObject>("Template/Prefab/Image");
|
|
|
+ var pLocaImage = ResMgr.Instance.LoadAsync<GameObject>("Image");
|
|
|
yield return pLocaImage;
|
|
|
go = GameObject.Instantiate(pLocaImage.asset as GameObject, spoit.transform);
|
|
|
go.SetActive(true);
|
|
@@ -269,7 +276,7 @@ public class ModelList: System.ICloneable
|
|
|
|
|
|
}
|
|
|
mat.prefabModel = go;
|
|
|
-
|
|
|
+ callback.Invoke();
|
|
|
|
|
|
}
|
|
|
}
|
|
@@ -281,7 +288,7 @@ public class ModelList: System.ICloneable
|
|
|
|
|
|
|
|
|
|
|
|
- private IEnumerator CreateModel_Text(ModelList material, GameObject spoit)
|
|
|
+ private IEnumerator CreateModel_Text(ModelList material, GameObject spoit,Action callback)
|
|
|
{
|
|
|
List<ObjectValue> objects = new List<ObjectValue>();
|
|
|
List<ModelItem> objs = material.materialList;
|
|
@@ -295,7 +302,7 @@ public class ModelList: System.ICloneable
|
|
|
case (int)MaterialType.None:
|
|
|
break;
|
|
|
case (int)MaterialType.Model:
|
|
|
- var pModel = ResMgr.Instance.LoadAsync<GameObject>("Template/Prefab/Model");
|
|
|
+ var pModel = ResMgr.Instance.LoadAsync<GameObject>("Model");
|
|
|
yield return pModel;
|
|
|
go = GameObject.Instantiate(pModel.asset as GameObject, spoit.transform);
|
|
|
go.SetActive(true);
|
|
@@ -304,7 +311,7 @@ public class ModelList: System.ICloneable
|
|
|
|
|
|
break;
|
|
|
case (int)MaterialType.Text:
|
|
|
- var pText = ResMgr.Instance.LoadAsync<GameObject>("Template/Prefab/Text");
|
|
|
+ var pText = ResMgr.Instance.LoadAsync<GameObject>("Text");
|
|
|
yield return pText;
|
|
|
go = GameObject.Instantiate(pText.asset as GameObject, spoit.transform);
|
|
|
go.SetActive(true);
|
|
@@ -360,7 +367,7 @@ public class ModelList: System.ICloneable
|
|
|
ObjectValue objectValue = CreateMatObjectValue(i, material.id, go, mat);
|
|
|
objects.Add(objectValue);
|
|
|
mat.prefabModel = go;
|
|
|
-
|
|
|
+ callback.Invoke();
|
|
|
|
|
|
}
|
|
|
|
|
@@ -373,9 +380,9 @@ public class ModelList: System.ICloneable
|
|
|
|
|
|
|
|
|
|
|
|
- private IEnumerator CreateImage_Video_Text(ModelList material, GameObject spoit)
|
|
|
+ private IEnumerator CreateImage_Video_Text(ModelList material, GameObject spoit, Action callback)
|
|
|
{
|
|
|
- yield return GameManager.Instance.StartCoroutine(SRTitleLayout.CalLayout(material, spoit));
|
|
|
+ yield return GameManager.Instance.StartCoroutine(SRTitleLayout.CalLayout(material, spoit, callback));
|
|
|
|
|
|
List<ObjectValue> objects = new List<ObjectValue>();
|
|
|
|
|
@@ -469,27 +476,50 @@ public class ModelList: System.ICloneable
|
|
|
return clonedObject;
|
|
|
}
|
|
|
|
|
|
- public void initModelObj()
|
|
|
+ public void Clear()
|
|
|
{
|
|
|
- if (getInfoPos() != Vector3.zero)
|
|
|
- {
|
|
|
- _model.transform.localPosition = getInfoPos();
|
|
|
- }
|
|
|
- if (getInfoEul() != Vector3.zero)
|
|
|
- {
|
|
|
- _model.transform.localEulerAngles = getInfoEul();
|
|
|
- }
|
|
|
- if (getInfoScale() != Vector3.zero)
|
|
|
- {
|
|
|
- _model.transform.localScale = getInfoScale();
|
|
|
- }
|
|
|
- if(materialList!=null)
|
|
|
+ iscreate = false;
|
|
|
+ if (materialList != null)
|
|
|
{
|
|
|
for (int i = 0; i < materialList.Count; i++)
|
|
|
{
|
|
|
- materialList[i].initModelObj();
|
|
|
+ materialList[i].Clear();
|
|
|
+ Debug.Log("Clear SpotsList materialList[i]" + i);
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+ Debug.Log("Clear SpotsList materialList[i] Clear");
|
|
|
+ }
|
|
|
+
|
|
|
+ public void initModelObj()
|
|
|
+ {
|
|
|
+ InitObjectTransform(()=> {
|
|
|
+
|
|
|
+
|
|
|
+ if (getInfoPos() != Vector3.zero)
|
|
|
+ {
|
|
|
+ _model.transform.localPosition = getInfoPos();
|
|
|
+ }
|
|
|
+ if (getInfoEul() != Vector3.zero)
|
|
|
+ {
|
|
|
+ _model.transform.localEulerAngles = getInfoEul();
|
|
|
+ }
|
|
|
+ if (getInfoScale() != Vector3.zero)
|
|
|
+ {
|
|
|
+ _model.transform.localScale = getInfoScale();
|
|
|
+ }
|
|
|
+ if (materialList != null)
|
|
|
+ {
|
|
|
+ for (int i = 0; i < materialList.Count; i++)
|
|
|
+ {
|
|
|
+ Debug.Log("initModelObj===> " + materialList[i].id);
|
|
|
+ materialList[i].initModelObj();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ });
|
|
|
|
|
|
|
|
|
}
|