Example #1
0
 public BigWorldSystem()
 {
     MessageHandler.RegisterMessageHandler(MessageDefine.SCBuildingListResp, OnRes);
     MessageHandler.RegisterMessageHandler(MessageDefine.SCBuildingUnlockResp, OnRes);
     GameEvents.UIEvents.UI_Loading_Event.OnLoadingOver += OnLoadingOver;
     GameEvents.BigWorld_Event.OnReflashBigWorld        += OnReflashBigWorld;
     m_gameObject = new BigWorldGameObject();
 }
Example #2
0
 public void OnDestory()
 {
     UnityEngine.Debug.Log("Destory BigWorld");
     MessageHandler.UnRegisterMessageHandler(MessageDefine.SCBuildingListResp, OnRes);
     MessageHandler.UnRegisterMessageHandler(MessageDefine.SCBuildingUnlockResp, OnRes);
     GameEvents.UIEvents.UI_Loading_Event.OnLoadingOver -= OnLoadingOver;
     GameEvents.BigWorld_Event.OnReflashBigWorld        -= OnReflashBigWorld;
     this.m_gameObject.OnDestory();
     this.isBuildLoad      = false;
     this.isFirstLoad      = true;
     this.m_gameObject     = null;
     this.m_openUIName     = string.Empty;
     this.m_needShowMainUI = true;
     this.m_currentGroupID = 1;
 }
Example #3
0
        private void ChangeBuildMaterial()
        {
            MeshRenderer[] renderer = m_buildObj.transform.GetComponentsInChildren <MeshRenderer>();

            for (int i = 0; i < renderer.Length; i++)
            {
                Material commonMat = BigWorldGameObject.GetBuildCommonMatByName(renderer[i].sharedMaterial.name + ".mat");
                renderer[i].sharedMaterial = commonMat;
            }
            //if (m_confBuild == null)
            //{
            //    return;
            //}
            ////Transform target = m_rootObj.transform.Find(confBuild.lockResource);
            //if (m_confBuild.unlockMaterial.Length != m_confBuild.unlockResource.Length)
            //{
            //    Debug.LogError("buid resource error" + m_BuildID + "  unlockMaterial:" + m_confBuild.unlockMaterial.Length + "  unlockResource:" + m_confBuild.unlockResource.Length);
            //    return;
            //}
            //for (int i = 0; i < m_confBuild.unlockMaterial.Length; i++)
            //{
            //    Transform nodeTran = m_buildObj.transform.Find(m_confBuild.unlockResource[i]);
            //    if (nodeTran == null)
            //    {
            //        Debug.LogError("unlockResource error  " + m_confBuild.unlockResource[i]);
            //        continue;
            //    }
            //    MeshRenderer render = nodeTran.GetComponent<MeshRenderer>();
            //    if (render == null)
            //    {
            //        continue;
            //    }
            //    if (!m_cacheMaterial.ContainsKey(m_confBuild.unlockMaterial[i]))
            //    {
            //        Debug.LogError("material is not exist " + m_confBuild.unlockMaterial[i]);
            //        continue;
            //    }
            //    if (cb != null)
            //    {
            //        cb(render, m_cacheMaterial[m_confBuild.unlockMaterial[i]]);
            //    }
            //    //render.material = m_cacheMaterial[m_confBuild.unlockMaterial[i]];
            //}
        }
Example #4
0
        public BigWorldBuild(long buildId, GameObject buildObj, ParticleScale wallEffectMaterial)
        {
            this.m_BuildID        = buildId;
            this.m_buildObj       = buildObj;
            this.m_unlockMaterial = BigWorldGameObject.GetBuildCommonMatByName("UnLock.mat");
            //this.m_cacheMaterial = cacheMaterial;
            this.m_confBuild = ConfBuilding.Get(buildId);
            long[] m_sceneIDs        = CommonTools.StringToLongArray(m_confBuild.sceneIds);
            long[] m_completeTaskIDs = CommonTools.StringToLongArray(m_confBuild.taskIds);
            m_achorData   = new BuidAchorData(buildId, m_sceneIDs, m_completeTaskIDs);
            this.status   = 0;
            this.m_srcPos = buildObj.transform.position;
            //this.m_unlockMaterial = unLockMaterial;
            this.m_unLockEffect = wallEffectMaterial;
            //this.m_dimianEffectMat = dimainEffectMat;
            //Transform wallTran = buildObj.transform.Find("wall");

            //if (wallTran != null)
            //{
            //    this.m_buildWall = wallTran.gameObject;
            //    this.m_buildWall.SetActive(false);
            //}
        }
Example #5
0
        //播放解锁
        private void PlayUnLockEffect(Action callback = null)
        {
            EngineCoreEvents.AudioEvents.PlayAudio.SafeInvoke(Audio.AudioType.UISound, GameCustomAudioKey.unlock_success.ToString());
            BigWorldGroupData groupData = this.m_buildObj.GetComponent <BigWorldGroupData>();

            if (groupData == null)
            {
                Debug.LogError("group data error");
                return;
            }
            List <Material> mats = new List <Material>();
            Dictionary <MeshRenderer, Material> m_srcMats = new Dictionary <MeshRenderer, Material>();

            //List<Material> m_srcMats = new List<Material>();
            //Material m_dimianMat = null;
            //BigWorldDimianData dimianData = null;
            //Material dimainMat = null;
            MeshRenderer[] renderer = m_buildObj.transform.GetComponentsInChildren <MeshRenderer>();
            for (int i = 0; i < renderer.Length; i++)
            {
                Material          mat       = renderer[i].sharedMaterial;
                BigWorldModelData modelData = renderer[i].gameObject.GetComponent <BigWorldModelData>();
                if (modelData != null)
                {
                    renderer[i].material = m_unlockMaterial;
                    renderer[i].material.SetFloat("_MaxHei", modelData.maxHei);
                    renderer[i].material.SetTexture("_MainTex", mat.GetTexture("_MainTex"));
                    renderer[i].material.SetTexture("_LightMapTex", mat.GetTexture("_NightTex"));
                    //render.material.SetFloat("_LightLerp", mat.GetFloat("_lerp"));
                    mats.Add(renderer[i].material);
                }
                m_srcMats.Add(renderer[i], BigWorldGameObject.GetBuildCommonMatByName(mat.name + ".mat"));
            }


            groupData.PlayEffect(mats, () =>
            {
                TimeModule.Instance.SetTimeout(() =>
                {
                    foreach (var kv in m_srcMats)
                    {
                        kv.Key.sharedMaterial = kv.Value;
                    }
                    this.m_unLockEffect.transform.SetParent(this.m_buildObj.transform);
                    this.m_unLockEffect.transform.localPosition = Vector3.zero;
                    //this.m_unLockEffect.transform.position = m_buildObj.transform.position; //+ Vector3.up * 0.1f

                    this.m_unLockEffect.transform.localPosition += groupData.m_FuncPos;
                    this.m_unLockEffect.scale = groupData.m_EffectScale;
                    this.m_unLockEffect.gameObject.SetActive(true);
                    TimeModule.Instance.SetTimeout(() => { this.m_unLockEffect.gameObject.SetActive(false); }, 2f);
                    Dictionary <UBSParamKeyName, object> _params = new Dictionary <UBSParamKeyName, object>()
                    {
                        { UBSParamKeyName.ContentID, BuildID },
                        { UBSParamKeyName.ContentType, "unLock" },
                        { UBSParamKeyName.Description, DateTime.UtcNow.ToString("yyyy-MM-dd HH:mm:ss:ms") },
                    };
                    UserBehaviorStatisticsModules.Instance.LogEvent(UBSEventKeyName.build_plan, null, _params);

                    GameObject.DestroyImmediate(groupData);

                    GameEvents.BigWorld_Event.OnBuildUnLockComplete.SafeInvoke(BuildID);
                    if (callback != null)
                    {
                        callback();
                    }
                }, 1f);
            });
        }