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 override void OnFlyWingOk(int id, GameObject flyWingModObj) { if (flyWingModObj == null) { return; } Tab_FlyWingClient flyWingClient = TableManager.GetFlyWingClientByID(id, 0); if (flyWingClient == null) { return; } Obj_OtherPlayer otherPlayer = m_cachedObjCharacter as Obj_OtherPlayer; if (otherPlayer != null) { // 绑点1 Transform effectPointBoneFirst; effectPointBoneFirst = flyWingModObj.transform.Find(flyWingClient.EffectPointNameFirst); if (effectPointBoneFirst) { if (m_effectBindPointCache.ContainsKey(GlobeVar.EFFECT_BIND_POINT_LFLYWING)) { m_effectBindPointCache[GlobeVar.EFFECT_BIND_POINT_LFLYWING] = effectPointBoneFirst.gameObject; } else { m_effectBindPointCache.Add(GlobeVar.EFFECT_BIND_POINT_LFLYWING, effectPointBoneFirst.gameObject); } m_effectBindPointsOnFlyWingList.Add(GlobeVar.EFFECT_BIND_POINT_LFLYWING); } // 绑点2 Transform effectPointBoneSecond; effectPointBoneSecond = flyWingModObj.transform.Find(flyWingClient.EffectPointNameSecond); if (effectPointBoneSecond) { if (m_effectBindPointCache.ContainsKey(GlobeVar.EFFECT_BIND_POINT_RFLYWING)) { m_effectBindPointCache[GlobeVar.EFFECT_BIND_POINT_RFLYWING] = effectPointBoneSecond.gameObject; } else { m_effectBindPointCache.Add(GlobeVar.EFFECT_BIND_POINT_RFLYWING, effectPointBoneSecond.gameObject); } m_effectBindPointsOnFlyWingList.Add(GlobeVar.EFFECT_BIND_POINT_RFLYWING); } PlayEffect(flyWingClient.EffectIdFirst); PlayEffect(flyWingClient.EffectIdSecond); PlayEffect(flyWingClient.EffectIdThrid); PlayEffect(flyWingClient.EffectIdFour); } }
public void InitFlyWingObj(Obj_OtherPlayer otherPlayer, int flyWingId) { Tab_FlyWing flyWing = TableManager.GetFlyWingByID(flyWingId, 0); if (flyWing == null) { return; } Tab_FlyWingClient flyWingClient = TableManager.GetFlyWingClientByID(flyWingId, 0); if (flyWingClient == null) { return; } Singleton <ObjManager> .GetInstance().ReloadModel(otherPlayer.gameObject, flyWingClient.ModeName, onAsyLoadFlyWing, otherPlayer, flyWingId); }
//=========================================================== public void InitFakeObjFlyWing(int id, GameObject Obj) { Tab_FlyWing tab = TableManager.GetFlyWingByID(id, 0); if (tab == null) { return; } Tab_FlyWingClient tabClient = TableManager.GetFlyWingClientByID(id, 0); if (tabClient == null || tabClient.ModeName == "") { return; } string loadPath = tabClient.ModeName; BundleManager.LoadModelInQueue(loadPath, onAsyLoadFlyWing, Obj, id, null); }
public static void onAsyLoadFlyWing(string modeName, GameObject resObj, object param1, object param2, object param3) { if (param1 == null || param2 == null || param3 == null) { return; } GameObject objRoot = param1 as GameObject; Obj_OtherPlayer playerObj = param2 as Obj_OtherPlayer; if (objRoot == null || playerObj == null) { return; } if (playerObj.FlyWingObj == null) { return; } int flyWingId = (int)param3; Tab_FlyWing flyWingTab = TableManager.GetFlyWingByID(flyWingId, 0); if (flyWingTab == null) { return; } Tab_FlyWingClient flyWingClientTab = TableManager.GetFlyWingClientByID(flyWingId, 0); if (flyWingClientTab == null) { return; } Transform gFlyWingtransform = null; if (playerObj.MountObj != null && playerObj.MountObj.gameObject != null) { gFlyWingtransform = playerObj.MountObj.gameObject.transform.FindChild(GlobeVar.STR_FATHER_MODE_NAME); } else { gFlyWingtransform = objRoot.transform.FindChild(GlobeVar.STR_FATHER_MODE_NAME); } if (gFlyWingtransform == null || gFlyWingtransform.gameObject == null) { Debug.LogError("gFlyWingtransform is null"); playerObj.ObjEffectController.OnCancalFlyWing(); return; } // 创建模型 GameObject model = (GameObject)GameObject.Instantiate(resObj); if (model == null) { return; } model.name = GlobeVar.STR_MODE_NAME; Transform temTransform = gFlyWingtransform.FindChild(model.name); if (temTransform) { playerObj.ObjEffectController.OnCancalFlyWing(); GameObject.Destroy(temTransform.gameObject); } model.transform.parent = gFlyWingtransform; model.transform.localPosition = Vector3.zero; model.transform.localRotation = Quaternion.Euler(new Vector3(flyWingClientTab.AngleX, flyWingClientTab.AngleY, flyWingClientTab.AngleZ)); //Quaternion.identity; Transform[] trans = model.GetComponentsInChildren <Transform> (); for (int i = 0; i < trans.Length; ++i) { trans[i].gameObject.layer = objRoot.layer; } // 播放特效 playerObj.ObjEffectController.InitEffect(playerObj.gameObject); playerObj.ObjEffectController.OnFlyWingOk(flyWingId, model); }