public void Destroy() { if (m_ObjAnim != null) { GameObject.Destroy(ObjAnim.gameObject); m_ObjAnim = null; } }
public static void onAsyLoadFlyWing(string modeName, GameObject resObj, object param1, object param2, object param3) { if (resObj == null || param1 == null || param2 == null) { return; } GameObject playerObj = param1 as GameObject; if (playerObj == null) { return; } int id = (int)param2; Tab_FlyWingClient tabClient = TableManager.GetFlyWingClientByID(id, 0); if (tabClient == null || tabClient.ModeName == "") { return; } Transform flyWingForm = playerObj.transform.Find(GlobeVar.STR_FATHER_MODE_NAME); if (flyWingForm == null) { return; } // 创建模型 GameObject model = (GameObject)GameObject.Instantiate(resObj); if (model == null) { return; } model.name = GlobeVar.STR_MODE_NAME_FADEOBJ; model.transform.parent = flyWingForm; model.transform.localPosition = Vector3.zero; model.transform.localRotation = Quaternion.Euler(new Vector3(-90, 90, 0)); //Quaternion.identity; Transform[] trans = model.GetComponentsInChildren <Transform> (); for (int i = 0; i < trans.Length; ++i) { trans[i].gameObject.layer = resObj.layer; } ObjAnimModel objAnim = playerObj.GetComponent <ObjAnimModel>(); if (objAnim != null) { objAnim.FakeObjEffectController.OnFlyWingOk(id, model); } }
public void OnLoadWeaponOK(Tab_WeaponModel tabData) { ObjAnimModel objAnim = gameObject.GetComponent <ObjAnimModel>(); if (objAnim == null) { return; } Transform effectPointBone; if (objAnim.LWeaponObject != null) { effectPointBone = objAnim.LWeaponObject.transform.Find(tabData.LWeaponBindPointPath); if (effectPointBone != null) { if (m_effectBindPointCache.ContainsKey(GlobeVar.EFFECT_BIND_POINT_LWEAPON)) { m_effectBindPointCache[GlobeVar.EFFECT_BIND_POINT_LWEAPON] = effectPointBone.gameObject; } else { m_effectBindPointCache.Add(GlobeVar.EFFECT_BIND_POINT_LWEAPON, effectPointBone.gameObject); } } } if (objAnim.RWeaponObject != null) { effectPointBone = objAnim.RWeaponObject.transform.Find(tabData.RWeaponBindPointPath); if (effectPointBone != null) { if (m_effectBindPointCache.ContainsKey(GlobeVar.EFFECT_BIND_POINT_RWEAPON)) { m_effectBindPointCache[GlobeVar.EFFECT_BIND_POINT_RWEAPON] = effectPointBone.gameObject; } else { m_effectBindPointCache.Add(GlobeVar.EFFECT_BIND_POINT_RWEAPON, effectPointBone.gameObject); } } } int count = tabData.getWeaponEffectCount(); int effectId; for (int i = 0; i < count; i++) { effectId = tabData.GetWeaponEffectbyIndex(i); if (effectId >= 0) { PlayEffect(effectId); } } }
public bool initFakeObject(int nFakeObjID, GameObject fakeObjNode, out GameObject FakeObj) { FakeObj = null; if (m_ObjAnim) { Destroy(); } FakeObjNode = fakeObjNode; if (FakeObjNode == null) { LogModule.DebugLog("error: initFakeObject FakeObjNode is null"); return(false); } Tab_FakeObject FakeObjTable = TableManager.GetFakeObjectByID(nFakeObjID, 0); if (FakeObjTable == null) { return(false); } FakeObj = ResourceManager.InstantiateResource("Prefab/Model/NPCRoot", nFakeObjID.ToString()) as GameObject; if (FakeObj != null) { if (FakeObjTable.IsPlayer == 1) { if (GameManager.gameManager.OtherPlayerData.ModuleVisualID == GlobeVar.INVALID_ID) { Singleton <ObjManager> .GetInstance().ReloadModel(FakeObj, FakeObjTable.FakeObjModel, Singleton <ObjManager> .GetInstance().OtherView_AsycLoadFakeObjOver, FakeObjTable, this); } else { InitFashionFakeObj(FakeObj, GameManager.gameManager.OtherPlayerData.ModuleVisualID, FakeObjTable); } } else { Singleton <ObjManager> .GetInstance().ReloadModel(FakeObj, FakeObjTable.FakeObjModel, Singleton <ObjManager> .GetInstance().OtherView_AsycLoadFakeObjOver, FakeObjTable, this); } m_ObjAnim = FakeObj.AddComponent <ObjAnimModel>() as ObjAnimModel; return(true); } return(false); }
public bool initFakeObject(int nFakeObjID, GameObject fakeObjNode, out GameObject FakeObj, int modeVisualID = -1, int nProfession = -1) { FakeObj = null; if (m_ObjAnim) { Destroy(); } FakeObjNode = fakeObjNode; if (FakeObjNode == null) { LogModule.DebugLog("error: initFakeObject FakeObjNode is null"); return(false); } Tab_FakeObject FakeObjTable = TableManager.GetFakeObjectByID(nFakeObjID, 0); if (FakeObjTable == null) { return(false); } FakeObj = ResourceManager.InstantiateResource("Prefab/Model/NPCRoot", nFakeObjID.ToString()) as GameObject; if (FakeObj != null) { if (!Singleton <ObjManager> .Instance.MainPlayer) { // 重载模型 if (modeVisualID != GlobeVar.INVALID_ID) { InitFashionFakeObj(FakeObj, modeVisualID, FakeObjTable, nProfession); } else { Singleton <ObjManager> .GetInstance().ReloadModel(FakeObj, FakeObjTable.FakeObjModel, Singleton <ObjManager> .GetInstance().AsycLoadFakeObjOver, FakeObjTable, this); } } else if (FakeObjTable.IsPlayer == 1) { if (Singleton <ObjManager> .Instance.MainPlayer.ModelVisualID == GlobeVar.INVALID_ID) { Singleton <ObjManager> .GetInstance().ReloadModel(FakeObj, FakeObjTable.FakeObjModel, Singleton <ObjManager> .GetInstance().AsycLoadFakeObjOver, FakeObjTable, this); } else { InitFashionFakeObj(FakeObj, Singleton <ObjManager> .Instance.MainPlayer.ModelVisualID, FakeObjTable); } } else { Singleton <ObjManager> .GetInstance().ReloadModel(FakeObj, FakeObjTable.FakeObjModel, Singleton <ObjManager> .GetInstance().AsycLoadFakeObjOver, FakeObjTable, this); } m_ObjAnim = FakeObj.GetComponent <ObjAnimModel>() as ObjAnimModel; if (m_ObjAnim == null) { m_ObjAnim = FakeObj.AddComponent <ObjAnimModel>() as ObjAnimModel; } return(true); } return(false); }
public static void OnAsycLoadMount(string modelName, GameObject resObj, object param1, object param2, object param3) { if (param1 == null || param2 == null || param3 == null) { return; } GameObject objRoot = (GameObject)param1; Obj_OtherPlayer PlayerObj = (Obj_OtherPlayer)param2; string strBindPoint = (string)param3; if (null == objRoot || null == PlayerObj || null == strBindPoint) { return; } if (PlayerObj.MountObj == null) { return; } if (resObj == null || PlayerObj.MountID <= 0) { if (PlayerObj.MountObj != null) { DestroyMount(PlayerObj.MountObj); PlayerObj.MountObj = null; } return; } // 保存角色模型 找Model 放在MountPlayer下 string strModelName = "Model"; //if (Singleton<ObjManager>.GetInstance().MainPlayer.IsChangedMainPlayer) //{ // strModelName = "ModelChange"; //} Transform gMountPlayerTrans = objRoot.transform.FindChild(strModelName); if (gMountPlayerTrans == null || gMountPlayerTrans.gameObject == null) { DestroyMount(PlayerObj.MountObj); PlayerObj.MountObj = null; return; } gMountPlayerTrans.parent = PlayerObj.MountObj.gameObject.transform; gMountPlayerTrans.localPosition = Vector3.zero; gMountPlayerTrans.localRotation = Quaternion.identity; // 初始化动作 PlayerObj.MountObj.MountPlayer = PlayerObj.MountObj.gameObject.AddComponent <ObjAnimModel>() as ObjAnimModel; ObjAnimModel mountPlayer = PlayerObj.MountObj.MountPlayer; if (mountPlayer == null) { DestroyMount(PlayerObj.MountObj); PlayerObj.MountObj = null; return; } mountPlayer.AnimationFilePath = PlayerObj.AnimationFilePath; mountPlayer.InitAnimation(); // 添加马Model Singleton <ObjManager> .GetInstance().AsycReloadMountModelOver(modelName, resObj, objRoot, PlayerObj.AnimationFilePath, null); string str = strModelName + strBindPoint; Transform mountTransferm = objRoot.transform.FindChild(str); if (null == mountTransferm) { LogModule.ErrorLog("can not find the mount's bindpoint:" + str); DestroyMount(PlayerObj.MountObj); PlayerObj.MountObj = null; return; } GameObject gBindPoint = mountTransferm.gameObject; if (gBindPoint) { mountPlayer.transform.parent = gBindPoint.transform; mountPlayer.transform.localPosition = Vector3.zero; mountPlayer.transform.rotation = objRoot.transform.rotation; } PlayerObj.OnSwithObjAnimState(PlayerObj.CurObjAnimState); //需要下马时 还骑着马 走下面流程(防止出现 上马立马下马的情况 下马失败) if (PlayerObj.IsNeedUnMount && PlayerObj.MountID != -1) { UnMount(PlayerObj); } if (null != PlayerObj) { PlayerObj.OnReloadModle(); if (PlayerObj.ObjEffectController != null) { PlayerObj.ObjEffectController.OnMountModelOk(); //非登陆状态才有上骑乘的特效 if (PlayerObj.ShowRideOnEffect) { Tab_MountBase MountBase = TableManager.GetMountBaseByID(PlayerObj.MountID, 0); if (MountBase != null) { Tab_CharMount MountTable = TableManager.GetCharMountByID(MountBase.ModelID, 0); if (MountTable != null) { PlayerObj.ObjEffectController.PlayEffect(MountTable.EffectMountOn); PlayerObj.ShowRideOnEffect = false; } } } } PlayerObj.RideMountWeapon(); PlayerObj.IsLoadingModel = false; if (PlayerObj.WaitChangeState != GlobeVar.INVALID_ID) { int nChangeState = PlayerObj.WaitChangeState; PlayerObj.WaitChangeState = GlobeVar.INVALID_ID; PlayerObj.UpdateOtherPlayerChangeState(nChangeState); } } }