From 39ec1562198212d8c2071c8169cca09f8e5d1109 Mon Sep 17 00:00:00 2001
From: client_linchunjie <461730578@qq.com>
Date: 星期五, 19 四月 2019 14:04:50 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.0.87:10010/r/snxxz_scripts

---
 System/SelectRole/SelectRoleBehaviour.cs |   65 +++++++++++++++++++-------------
 1 files changed, 39 insertions(+), 26 deletions(-)

diff --git a/System/SelectRole/SelectRoleBehaviour.cs b/System/SelectRole/SelectRoleBehaviour.cs
index 59f124b..c81539f 100644
--- a/System/SelectRole/SelectRoleBehaviour.cs
+++ b/System/SelectRole/SelectRoleBehaviour.cs
@@ -3,18 +3,19 @@
 using UnityEngine;
 using Snxxz.UI;
 
-public class SelectRoleBehaviour : MonoBehaviour
+public class SelectRoleBehaviour
 {
-
-    [SerializeField] Camera m_CreateRoleCamera;
-    [SerializeField] CreateRoleHeroPlatform m_HeroPlatform;
-    [SerializeField] ActorShadowCaster m_Shadow;
+    GameObject behaviour;
+    Camera ceateRoleCamera;
+    CreateRoleHeroPlatform platform;
+    ActorShadowCaster shadow;
 
     UI3DShowHero playerModel = new UI3DShowHero();
 
     public void Show()
     {
-        Dispose();
+        LoadAssets(CreateRoleScriptableObject.GetJobParams(PlayerDatas.Instance.loginInfo.Job));
+        playerModel.Dispose();
 
         var fashionClothes = 0;
         var fashionWeapon = 0;
@@ -69,33 +70,45 @@
             secondaryId = secondaryItemId,
         };
 
-        m_CreateRoleCamera.gameObject.SetActive(true);
-        var model = playerModel.Show(data, m_HeroPlatform.transform);
+        ceateRoleCamera.gameObject.SetActive(true);
+        var model = playerModel.Show(data, platform.transform);
         playerModel.StandUp();
-        m_Shadow.gameObject.SetActive(true);
-        m_Shadow.Cast(model.transform);
+        shadow.gameObject.SetActive(true);
+        shadow.Cast(model.transform);
+    }
+
+    public void Hide()
+    {
+        if (ceateRoleCamera != null)
+        {
+            ceateRoleCamera.gameObject.SetActive(false);
+        }
+
+        if (shadow != null)
+        {
+            shadow.gameObject.SetActive(false);
+        }
     }
 
     public void Dispose()
     {
-        m_CreateRoleCamera.gameObject.SetActive(false);
-        m_Shadow.gameObject.SetActive(false);
-        playerModel.Dispose();
+        behaviour = null;
+        ceateRoleCamera = null;
+        platform = null;
+        shadow = null;
+        playerModel = null;
     }
 
-    private void Awake()
+    private void LoadAssets(CreateRoleScriptableObject.RoleShowParams showParams)
     {
-        m_CreateRoleCamera.gameObject.SetActive(false);
-        m_Shadow.gameObject.SetActive(false);
+        if (behaviour == null)
+        {
+            var prefab = SceneLoader.LoadCreateRole(showParams.platformPrefabName);
+            behaviour = GameObject.Instantiate(prefab, showParams.platformPosition, Quaternion.identity);
+            behaviour.name = showParams.platformPrefabName;
+            shadow = behaviour.GetComponentInChildren<ActorShadowCaster>();
+            platform = behaviour.GetComponentInChildren<CreateRoleHeroPlatform>();
+            ceateRoleCamera = behaviour.GetComponentInChildren<Camera>();
+        }
     }
-
-    private void OnEnable()
-    {
-    }
-
-    private void OnDestroy()
-    {
-        StopAllCoroutines();
-    }
-
 }

--
Gitblit v1.8.0