少年修仙传客户端代码仓库
client_linchunjie
2018-09-25 78bfe524ea4776c47f6314e56e97f39970b00fce
UI/Common/UI3DModelExhibition.cs
@@ -26,12 +26,8 @@
        [SerializeField] ColorCorrectionCurves m_CameraColor;
        public bool interactable {
            get {
                return m_Interactable;
            }
            set {
                m_Interactable = value;
            }
            get { return m_Interactable; }
            set { m_Interactable = value; }
        }
        UI3DShowHero playerModel = new UI3DShowHero();
@@ -47,13 +43,10 @@
        GameObject npcModel = null;
        SFXController m_NpcEffect;
        public GameObject NpcModelPet {
            get {
                return npcModel;
            }
            set {
                npcModel = value;
            }
            get { return npcModel; }
            set { npcModel = value; }
        }
        int m_WingModelId = 0;
        GameObject wingModel = null;
@@ -70,13 +63,12 @@
        PlayerPackModel playerPack { get { return ModelCenter.Instance.GetModel<PlayerPackModel>(); } }
        public static UI3DModelExhibition Instance {
            get; set;
        }
        public static UI3DModelExhibition Instance { get; private set; }
        public static void CreateStage()
        {
            var gameObject = GameObject.Instantiate(Resources.Load<GameObject>("UI/Prefabs/UI3DModelExhibitionStage"));
            var prefab = Resources.Load<GameObject>("UI/Prefabs/UI3DModelExhibitionStage");
            var gameObject = GameObject.Instantiate(prefab);
            Instance = gameObject.GetComponent<UI3DModelExhibition>();
            Instance.transform.position = new Vector3(1000, 2000, 3000);
            Instance.name = "UI3DModelExhibitionStage";
@@ -85,14 +77,15 @@
            DontDestroyOnLoad(gameObject);
        }
        public void BeginShowLoginPlayer(RawImage _rawImage, int _job)
        public void ShowLoginPlayer(RawImage _rawImage, int _job)
        {
            var clothesItemId = 0;
            var weaponItemId = 0;
            var wingsItemId = 0;
            var secondaryItemId = 0;
            var _suitLevel = 0;
            var suitLevel = 0;
            var equipInfos = PlayerDatas.Instance.loginInfo.EquipInfo;
            for (int i = 0; i < equipInfos.Length; i++)
            {
                var equipInfo = equipInfos[i];
@@ -106,10 +99,10 @@
                        if (equipInfo.IsSuite == 1)
                        {
                            Dictionary<int, List<int>> _userDataDict = ConfigParse.Analysis(equipInfo.UserData);
                            if (_userDataDict.ContainsKey(30))
                            var userDataDict = ConfigParse.Analysis(equipInfo.UserData);
                            if (userDataDict.ContainsKey(30))
                            {
                                _suitLevel = _userDataDict[30][0];
                                suitLevel = userDataDict[30][0];
                            }
                        }
                        break;
@@ -122,10 +115,21 @@
                }
            }
            BeginShowPlayer(_rawImage, _job, clothesItemId, _suitLevel, weaponItemId, wingsItemId, secondaryItemId, false);
            var data = new UI3DPlayerExhibitionData
            {
                job = _job,
                clothesId = clothesItemId,
                suitLevel = suitLevel,
                weaponId = weaponItemId,
                wingsId = wingsItemId,
                secondaryId = secondaryItemId,
                isDialogue = false,
            };
            ShowPlayer(_rawImage, data);
        }
        public void BeginShowPlayer(RawImage _rawImage, int _job, bool _isDialogue = false)
        public void ShowPlayer(RawImage _rawImage, int _job, bool _isDialogue = false)
        {
            var clothes = playerPack.GetItemModelByIndex(PackType.rptEquip, (int)RoleEquipType.retClothes);
            var clothesId = clothes == null ? 0 : (int)clothes.itemInfo.ItemID;
@@ -152,10 +156,21 @@
                }
            }
            BeginShowPlayer(_rawImage, _job, clothesId, _suitLevel, weaponId, wingsId, secondaryId, _isDialogue);
            var data = new UI3DPlayerExhibitionData
            {
                job = _job,
                clothesId = clothesId,
                suitLevel = _suitLevel,
                weaponId = weaponId,
                wingsId = wingsId,
                secondaryId = secondaryId,
                isDialogue = _isDialogue,
            };
            ShowPlayer(_rawImage, data);
        }
        public void BeginShowPlayer(RawImage _rawImage, int _job, RoleEquipType _exceptEquip)
        public void ShowPlayer(RawImage _rawImage, int _job, RoleEquipType _exceptEquip)
        {
            var clothes = _exceptEquip == RoleEquipType.retClothes ?
                null : playerPack.GetItemModelByIndex(PackType.rptEquip, (int)RoleEquipType.retClothes);
@@ -186,19 +201,38 @@
                }
            }
            BeginShowPlayer(_rawImage, _job, clothesId, _suitLevel, weaponId, wingsId, secondaryId, false);
            var data = new UI3DPlayerExhibitionData
            {
                job = _job,
                clothesId = clothesId,
                suitLevel = _suitLevel,
                weaponId = weaponId,
                wingsId = wingsId,
                secondaryId = secondaryId,
                isDialogue = false,
            };
            ShowPlayer(_rawImage, data);
        }
        public void BeginShowPlayer(RawImage _rawImage, int _job, int _clothesId, int suitLevel, int _weaponId, int _wingsId, int _secondaryId, bool _isDialogue = false)
        public void ShowPlayer(RawImage _rawImage, UI3DPlayerExhibitionData data)
        {
            StopShow();
            var instance = playerModel.Show(_job, _clothesId, suitLevel, _weaponId, _wingsId, _secondaryId, _isDialogue ? m_DialogPoint : m_PlayerShowPoint);
            var job = data.job;
            var clothesId = data.clothesId;
            var suitLevel = data.suitLevel;
            var weaponId = data.weaponId;
            var wingsId = data.wingsId;
            var secondaryId = data.secondaryId;
            var isDialogue = data.isDialogue;
            interactable = !_isDialogue;
            var instance = playerModel.Show(job, clothesId, suitLevel, weaponId, wingsId, secondaryId, isDialogue ? m_DialogPoint : m_PlayerShowPoint);
            interactable = !isDialogue;
            m_PlayerShowPoint.localEulerAngles = Vector3.zero;
            if (_isDialogue)
            if (isDialogue)
            {
                instance.transform.localPosition = GeneralConfig.Instance.heroDialogueOffset;
                instance.transform.localEulerAngles = GeneralConfig.Instance.heroDialogueRotation;
@@ -216,20 +250,29 @@
            if (_rawImage != null)
            {
                _rawImage.rectTransform.sizeDelta = new Vector2(_rawImage.rectTransform.rect.height * 4f / 3, _rawImage.rectTransform.rect.height);
                m_InteractProcessor.rectTransform = _rawImage.rectTransform;
                var x = _rawImage.rectTransform.rect.height * 4f / 3;
                var y = _rawImage.rectTransform.rect.height;
                _rawImage.rectTransform.sizeDelta = new Vector2(x, y);
                _rawImage.texture = m_ShowCamera.targetTexture;
                _rawImage.material = MaterialUtility.GetGUIRenderTextureMaterial();
                m_InteractProcessor.rectTransform = _rawImage.rectTransform;
            }
        }
        public void BeginShowOtherPlayer(RawImage _rawImage, int _job, int _clothesId, int suitEffect, int _weaponId, int _wingsId, int _secondaryId)
        public void ShowOtherPlayer(RawImage _rawImage, UI3DPlayerExhibitionData data)
        {
            StopShow();
            playerModel.Show(_job, _clothesId, suitEffect, _weaponId, _wingsId, _secondaryId, m_PlayerShowPoint);
            var job = data.job;
            var clothesId = data.clothesId;
            var suitLevel = data.suitLevel;
            var weaponId = data.weaponId;
            var wingsId = data.wingsId;
            var secondaryId = data.secondaryId;
            playerModel.Show(job, clothesId, suitLevel, weaponId, wingsId, secondaryId, m_PlayerShowPoint);
            playerModel.UnloadClothedEffect();
            playerModel.PutOnEffect(suitEffect);
            playerModel.PutOnEffect(suitLevel);
            interactable = true;
            m_PlayerShowPoint.localEulerAngles = Vector3.zero;
@@ -244,38 +287,37 @@
            if (_rawImage != null)
            {
                _rawImage.rectTransform.sizeDelta = new Vector2(_rawImage.rectTransform.rect.height * 4f / 3, _rawImage.rectTransform.rect.height);
                m_InteractProcessor.rectTransform = _rawImage.rectTransform;
                var x = _rawImage.rectTransform.rect.height * 4f / 3;
                var y = _rawImage.rectTransform.rect.height;
                _rawImage.rectTransform.sizeDelta = new Vector2(x, y);
                _rawImage.texture = m_ShowCamera.targetTexture;
                _rawImage.material = MaterialUtility.GetGUIRenderTextureMaterial();
                m_InteractProcessor.rectTransform = _rawImage.rectTransform;
            }
        }
        public void BeginShowSitDownPlayer(RawImage _rawImage, int _job)
        public void ShowSitDownPlayer(RawImage _rawImage, int _job)
        {
            BeginShowPlayer(_rawImage, _job);
            ShowPlayer(_rawImage, _job);
            if (playerModel != null)
            {
                playerModel.SitDown();
            }
        }
        public void StopShowPlayer()
        {
            StopShow();
        }
        public void BeginShowHourse(int _modelId, RawImage _rawImage)
        public void ShowHourse(int _modelId, RawImage _rawImage)
        {
            StopShow();
            m_ShowCamera.enabled = true;
            if (_rawImage != null)
            {
                _rawImage.rectTransform.sizeDelta = new Vector2(_rawImage.rectTransform.rect.height * 4f / 3, _rawImage.rectTransform.rect.height);
                m_InteractProcessor.rectTransform = _rawImage.rectTransform;
                var x = _rawImage.rectTransform.rect.height * 4f / 3;
                var y = _rawImage.rectTransform.rect.height;
                _rawImage.rectTransform.sizeDelta = new Vector2(x, y);
                _rawImage.texture = m_ShowCamera.targetTexture;
                _rawImage.material = MaterialUtility.GetGUIRenderTextureMaterial();
                m_InteractProcessor.rectTransform = _rawImage.rectTransform;
            }
            var instance = UI3DModelFactory.LoadUIHorse(_modelId);
@@ -291,19 +333,18 @@
            horseModel = instance;
            m_HorseShowPoint.rotation = Quaternion.identity;
            var modelConfig = Config.Instance.Get<ModelResConfig>(_modelId);
            instance.transform.SetParentEx(m_HorseShowPoint, modelConfig.UIOffset, modelConfig.UIRotation, Vector3.one * modelConfig.UIScale);
            var position = modelConfig.UIOffset;
            var rotation = modelConfig.UIRotation;
            var scale = Vector3.one * modelConfig.UIScale;
            instance.transform.SetParentEx(m_HorseShowPoint, position, rotation, scale);
            instance.SetActive(true);
            ResetCameraColor();
        }
        public void StopShowHourse()
        {
            StopShow();
        }
        private GameObject ObjEquipment;
        public void BeginShowEquipment(int _modelId, Vector3 _localEulerAngles, RawImage _rawImage)
        public void ShowEquipment(int _modelId, Vector3 _localEulerAngles, RawImage _rawImage)
        {
            var instance = UI3DModelFactory.LoadUIWing(_modelId);
            ObjEquipment = instance;
@@ -324,29 +365,27 @@
            ResetCameraColor();
            if (_rawImage != null)
            {
                _rawImage.rectTransform.sizeDelta = new Vector2(_rawImage.rectTransform.rect.height * 4f / 3, _rawImage.rectTransform.rect.height);
                m_InteractProcessor.rectTransform = _rawImage.rectTransform;
                var x = _rawImage.rectTransform.rect.height * 4f / 3;
                var y = _rawImage.rectTransform.rect.height;
                _rawImage.rectTransform.sizeDelta = new Vector2(x, y);
                _rawImage.texture = m_ShowCamera.targetTexture;
                _rawImage.material = MaterialUtility.GetGUIRenderTextureMaterial();
                m_InteractProcessor.rectTransform = _rawImage.rectTransform;
            }
        }
        public void StopShowEquipment()
        public void ShowWing(int _modelId, Vector3 _localEulerAngles, RawImage _rawImage)
        {
            StopShow();
        }
        public void BeginShowWing(int _modelId, Vector3 _localEulerAngles, RawImage _rawImage)
        {
            StopShow();
            m_ShowCamera.enabled = true;
            if (_rawImage != null)
            {
                _rawImage.rectTransform.sizeDelta = new Vector2(_rawImage.rectTransform.rect.height * 4f / 3, _rawImage.rectTransform.rect.height);
                m_InteractProcessor.rectTransform = _rawImage.rectTransform;
                var x = _rawImage.rectTransform.rect.height * 4f / 3;
                var y = _rawImage.rectTransform.rect.height;
                _rawImage.rectTransform.sizeDelta = new Vector2(x, y);
                _rawImage.texture = m_ShowCamera.targetTexture;
                _rawImage.material = MaterialUtility.GetGUIRenderTextureMaterial();
                m_InteractProcessor.rectTransform = _rawImage.rectTransform;
            }
            var instance = UI3DModelFactory.LoadUIWing(_modelId);
@@ -355,6 +394,7 @@
                return;
            }
            m_ShowCamera.enabled = true;
            isShowWing = true;
            interactable = true;
@@ -363,7 +403,11 @@
            m_WingShowPoint.rotation = Quaternion.identity;
            var modelConfig = Config.Instance.Get<ModelResConfig>(_modelId);
            instance.transform.SetParentEx(m_WingShowPoint, modelConfig.UIOffset, modelConfig.UIRotation, Vector3.one * modelConfig.UIScale);
            var position = modelConfig.UIOffset;
            var rotation = modelConfig.UIRotation;
            var scale = Vector3.one * modelConfig.UIScale;
            instance.transform.SetParentEx(m_WingShowPoint, position, rotation, scale);
            instance.SetActive(true);
            ResetCameraColor();
            var animator = instance.GetComponent<Animator>();
@@ -373,27 +417,24 @@
            }
        }
        public void StopShowWing()
        public void ShowNPC(int _npcId, Vector3 _localEulerAngles, RawImage _rawImage, bool _gray = false, bool _isDialogue = false)
        {
            StopShow();
            ShowNPC(_npcId, Vector3.zero, _localEulerAngles, _rawImage, _gray, _isDialogue);
        }
        public void BeginShowNPC(int _npcId, Vector3 _localEulerAngles, RawImage _rawImage, bool _gray = false, bool _isDialogue = false)
        {
            BeginShowNPC(_npcId, Vector3.zero, _localEulerAngles, _rawImage, _gray, _isDialogue);
        }
        public void BeginShowNPC(int _npcId, Vector3 _offset, Vector3 _localEulerAngles, RawImage _rawImage, bool _gray = false, bool _isDialogue = false)
        public void ShowNPC(int _npcId, Vector3 _offset, Vector3 _localEulerAngles, RawImage _rawImage, bool _gray = false, bool _isDialogue = false)
        {
            StopShow();
            m_ShowCamera.enabled = true;
            if (_rawImage != null)
            {
                _rawImage.rectTransform.sizeDelta = new Vector2(_rawImage.rectTransform.rect.height * 4f / 3, _rawImage.rectTransform.rect.height);
                m_InteractProcessor.rectTransform = _rawImage.rectTransform;
                var x = _rawImage.rectTransform.rect.height * 4f / 3;
                var y = _rawImage.rectTransform.rect.height;
                _rawImage.rectTransform.sizeDelta = new Vector2(x, y);
                _rawImage.texture = m_ShowCamera.targetTexture;
                _rawImage.material = MaterialUtility.GetGUIRenderTextureMaterial();
                m_InteractProcessor.rectTransform = _rawImage.rectTransform;
            }
            var instance = UI3DModelFactory.LoadUINPC(_npcId);
@@ -434,11 +475,6 @@
            ResetCameraColor(_gray);
            m_CameraColor.saturation = _gray ? 0.08f : 1f;
        }
        public void StopShowNPC()
        {
            StopShow();
        }
        public void StopShow()
@@ -535,11 +571,11 @@
        {
            if (isShowinEquipment && ObjEquipment != null)
            {
                if (WindowCenter.Instance.CheckOpen<FirstTimeRechargeWin>())
                if (WindowCenter.Instance.CheckOpen("FirstTimeRechargeWin"))
                {
                    ObjEquipment.transform.Rotate(WindowCenter.Instance.Get<FirstTimeRechargeWin>().RotateVector * 1f, Space.Self);
                }
                if (WindowCenter.Instance.CheckOpen<FirstChargeTrialWin>())
                if (WindowCenter.Instance.CheckOpen("FirstChargeTrialWin"))
                {
                    ObjEquipment.transform.Rotate(WindowCenter.Instance.Get<FirstChargeTrialWin>().RotateVector * 1f, Space.Self);
                }
@@ -596,9 +632,18 @@
            {
                return;
            }
        }
        public struct UI3DPlayerExhibitionData
        {
            public int job;
            public int clothesId;
            public int suitLevel;
            public int weaponId;
            public int wingsId;
            public int secondaryId;
            public bool isDialogue;
        }
    }
}