Beispiel #1
0
        public bool Init(ObjYanHua_Init_Data initData)
        {
            if (null == m_ObjTransform)
            {
                m_ObjTransform = transform;
            }
            //服务器发过来的信息
            ServerID  = initData.m_ServerID;
            YanHuaId  = initData.m_nYanHuaID;
            OwerobjID = initData.m_OwnerObjId;
            OwnerGuid = initData.m_OwerGuid;
            m_ObjTransform.position = ActiveScene.GetTerrainPosition(new Vector3(initData.m_fX, 0, initData.m_fZ));
            Obj_Character ownerCharacter = Singleton <ObjManager> .GetInstance().FindObjCharacterInScene(OwerobjID);

            if (ownerCharacter != null)
            {
                Vector3 newPosVector3 = m_ObjTransform.position;
                newPosVector3.y         = ownerCharacter.ObjTransform.position.y;
                m_ObjTransform.position = newPosVector3;
            }

            //初始化特效
            if (ObjEffectController == null)
            {
                ObjEffectController = gameObject.AddComponent <ObjEffectBehaviourController>();
            }
            //播放特效
            Tab_YanHua TabYanHua = TableManager.GetYanHuaByID(YanHuaId, 0);

            if (TabYanHua != null)
            {
                int AliveEffectId = TabYanHua.AliveEffectId;
                if (AliveEffectId != -1 && ObjEffectController != null)
                {
                    PlayEffect(AliveEffectId);
                }
            }
            return(true);
        }
        public static void CreateModelYanhuaObj(ObjYanHua_Init_Data initData)
        {
            if (null == initData)
            {
                return;
            }

            //根据RoleBase的ID获得路径
            Tab_YanHua YanHuaInfo = TableManager.GetYanHuaByID(initData.m_nYanHuaID, 0);

            if (null == YanHuaInfo)
            {
                return;
            }

            Tab_CharModel charModel = TableManager.GetCharModelByID(YanHuaInfo.CharModelId, 0);

            if (null == charModel)
            {
                return;
            }

            GameObject yanhuaGo = ResourceManager.InstantiateResource("Prefab/Model/SnareRoot", initData.m_ServerID.ToString()) as GameObject;

            if (null != yanhuaGo)
            {
                Obj_YanHua objYanhua = yanhuaGo.AddComponent <Obj_YanHua>();

                if (objYanhua.Init(initData))
                {
                    objYanhua.CanLogic = true;
                    Singleton <ObjManager> .Instance.AddPoolObj(objYanhua.ServerID.ToString(), objYanhua);
                }
                LoadModelToRoot(YanHuaInfo.CharModelId, EResourceType.CharacterModel, LoadModelComplete, yanhuaGo, charModel, null);
            }
        }