示例#1
0
        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);
            }
        }
示例#2
0
    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);
        }
    }
示例#3
0
    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);
    }
示例#4
0
        //===========================================================
        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);
        }
示例#5
0
    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);
    }