Пример #1
0
        private void AddStrenthFX(uint fxId)
        {
            //Debug.Log("@@@@@@@@AddStrenthFX(" + fxId+")");
            if (fxId == m_oldStrenthFXID)
            {
                return;
            }

            int fxResId = EquipSpecialEffectData.dataMap[(int)fxId].fxid;

            m_oldStrenthFXID = loadedStrengthenId;

            System.Collections.Generic.List <GameObject> listGo = GameObject.GetComponent <ActorParent>().WeaponObj;

            if (fxId != 0)
            {
                AssetCacheMgr.GetInstance("H_blade_01_fx_6.prefab", (name, id, obj) =>
                {
                    for (int i = 0; i < listGo.Count; ++i)
                    {
                        int index = i;
                        MFUIUtils.AttachWidget(((GameObject)obj).transform, listGo[index].transform);
                    }
                });
            }
            else
            {
            }
        }
Пример #2
0
 void onHit()
 {
     //得到特效资源
     AssetCacheMgr.GetInstance("fx_scenes_long01.prefab", (str, id, obj) =>
     {
         if (this == null)
         {
             return;
         }
         if (obj == null)
         {
             return;
         }
         //挂到目标上
         GameObject go = obj as GameObject;
         if (m_onHitPoint == null)
         {
             return;
         }
         Utils.MountToSomeObjWithoutPosChange(go.transform, m_onHitPoint.transform);
         //卸装之前的
         if (m_lastFx != null)
         {
             AssetCacheMgr.ReleaseInstance(m_lastFx);
             m_lastFx = null;
         }
         //保存现在的
         m_lastFx = go;
     });
 }
Пример #3
0
    private void LoadCharacter(int vocation, Action loaded)
    {
        var ci = CharacterInfoData.dataMap.GetValueOrDefault(vocation, new CharacterInfoData());
        var ai = AvatarModelData.dataMap.GetValueOrDefault(vocation, new AvatarModelData());

        if (ModelShowCaseLogicManager.Instance.AvatarList.ContainsKey(vocation) &&
            ModelShowCaseLogicManager.Instance.AvatarList[vocation].gameObject != null)
        {
            if (loaded != null)
            {
                loaded();
            }

            ResetViewPort(vocation);
            return;
        }

        AssetCacheMgr.GetInstance(ai.prefabName, (prefab, id, go) =>
        {
            var ety            = new EtyAvatar();
            ety.vocation       = vocation;
            ety.equipList      = ci.EquipList;
            ety.weapon         = ci.Weapon;
            ety.CreatePosition = Vector3.zero;
            var avatar         = (go as GameObject);
            ety.gameObject     = avatar;
            MogoFXManager.Instance.AddShadow(ety.gameObject, (uint)ety.gameObject.GetHashCode(), 1, 1, 1, 8);
            avatar.name  = "ModelPool" + vocation.ToString();
            var cc       = avatar.GetComponent <Collider>() as CharacterController;
            cc.radius    = 0.5f;
            ety.animator = avatar.GetComponent <Animator>();
            ety.animator.applyRootMotion = false;


            ety.sfxHandler = avatar.AddComponent <SfxHandler>();

            ety.actorParent = avatar.AddComponent <ActorParent>();
            ety.actorParent.InitEquipment(vocation);
            //ety.actorParent.SetNakedEquid(ai.nakedEquipList);
            //ety.InitEquip();
            ety.gameObject.SetActive(false);
            if (ModelShowCaseLogicManager.Instance.AvatarList.ContainsKey(vocation))
            {
                ModelShowCaseLogicManager.Instance.AvatarList[vocation].sfxHandler.RemoveAllFX();
                AssetCacheMgr.ReleaseInstance(ModelShowCaseLogicManager.Instance.AvatarList[vocation].gameObject);
            }
            //ety.Hide();

            ModelShowCaseLogicManager.Instance.AvatarList[vocation] = ety;
            //avatar.transform.parent = transform;
            avatar.transform.localPosition = new Vector3(-1000, -1000, -1000);
            avatar.transform.localScale    = Vector3.one;
            var ObjCamera = new GameObject();
            ObjCamera.transform.parent           = avatar.transform.Find("slot_camera");
            ObjCamera.name                       = "Camera";
            ObjCamera.transform.localScale       = new Vector3(1, 1, 1);
            ObjCamera.transform.localEulerAngles = new Vector3(270, 180, 0);
            switch (vocation)
            {
            case 1:
                ObjCamera.transform.localPosition = new Vector3(0, -3.33f, 0);
                break;

            case 2:
                ObjCamera.transform.localPosition = new Vector3(0, -2.77f, 0);
                break;

            case 3:
                ObjCamera.transform.localPosition = new Vector3(0, -3f, 0);
                break;

            case 4:
                ObjCamera.transform.localPosition = new Vector3(0, -2.7f, 0);
                break;

            default:
                break;
            }

            var m_camera           = ObjCamera.AddComponent <Camera>();
            m_camera.clearFlags    = CameraClearFlags.Depth;
            m_camera.cullingMask   = 1 << 8;
            m_camera.nearClipPlane = 0.01f;
            m_camera.farClipPlane  = 5;
            m_camera.depth         = 10;
            m_camera.fieldOfView   = 40;
            var m_viewport         = ObjCamera.AddComponent <UIViewport>();
            ModelShowCaseLogicManager.Instance.ViewportList[vocation] = m_viewport;
            m_viewport.sourceCamera = GameObject.Find("Camera").GetComponentInChildren <Camera>();//Camera.mainCamera;
            m_viewport.topLeft      = left;
            m_viewport.bottomRight  = right;
            if (loaded != null)
            {
                loaded();
            }
            // AssetCacheMgr.GetResource(ci.controller,
            //(obj) =>
            //{
            //    var controller = obj as RuntimeAnimatorController;
            //    if (ety.animator)
            //        ety.animator.runtimeAnimatorController = controller;
            //    if (loaded != null)
            //        loaded();
            //});
        });
    }
Пример #4
0
 public static void GetPlayerInstance(string resourceName, Action <String, int, Object> loaded)
 {
     AssetCacheMgr.GetInstance(resourceName, loaded);
 }
Пример #5
0
    void OnGUI()
    {
        if (GUI.Button(new Rect(120, 20, 50, 30), "switch"))
        {
            isShowDebug = !isShowDebug;
            //LoggerHelper.UploadLogFile();
        }
        //if (GUI.Button(new Rect(20, 70, 50, 30), "kkkk"))
        //{
        //    EventDispatcher.TriggerEvent(Events.OtherEvent.ClientGM, "@OpenGM");
        //}
        if (!isShowDebug)
        {
            return;
        }
        prefabName = GUI.TextField(new Rect(0, 60, 200, 40), prefabName);

        if (GUI.Button(new Rect(0, 100, 100, 100), "create"))
        {
            temps.Clear();
            var sw = new System.Diagnostics.Stopwatch();
            sw.Start();
            var prefs = prefabName.Split('-');
            for (int i = 0; i < prefs.Length; i++)
            {
                var index = i;
                var item  = prefs[index];
                AssetCacheMgr.GetInstance(item, (a, b, c) =>
                {
                    if (index == prefs.Length - 1)
                    {
                        sw.Stop();
                        LoggerHelper.Debug("Load Fin: " + sw.ElapsedMilliseconds);
                    }
                    LoggerHelper.Debug(a);
                    temps.Add(c);
                });
            }
        }

        if (GUI.Button(new Rect(100, 100, 100, 100), "destroy"))
        {
            foreach (var item in temps)
            {
                AssetCacheMgr.ReleaseInstance(item);
            }
        }

        if (GUI.Button(new Rect(0, 200, 100, 100), "Res"))
        {
            AssetCacheMgr.GetResource(prefabName, (a) =>
            {
                LoggerHelper.Debug(a);
            });
        }

        resourceName = GUI.TextField(new Rect(200, 200, 200, 100), resourceName);
        result       = GUI.TextField(new Rect(0, 300, 400, 400), result);

        if (GUI.Button(new Rect(100, 200, 50, 50), "Find Root"))
        {
            result = ResourceManager.GetResourceRoots(resourceName).PackList('\n');
        }
        if (GUI.Button(new Rect(150, 200, 50, 50), "PR"))
        {
            LoggerHelper.Info(ResourceManager.resources.Values.ToList().PackList('\n'));
        }
        if (GUI.Button(new Rect(100, 250, 50, 50), "PRD"))
        {
            LoggerHelper.Info(AssetCacheMgr.ResourceDic.PackMap(mapSpriter: '\n'));
        }
        if (GUI.Button(new Rect(150, 250, 50, 50), "PGONM"))
        {
            LoggerHelper.Info(AssetCacheMgr.GameObjectNameMapping.PackMap(mapSpriter: '\n'));
        }
        if (GUI.Button(new Rect(200, 100, 100, 100), "show dep"))
        {
            LoggerHelper.Info(ResourceManager.resources.Values.ToList().PackList('\n'));
        }
    }