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 { } }
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; }); }
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(); //}); }); }
public static void GetPlayerInstance(string resourceName, Action <String, int, Object> loaded) { AssetCacheMgr.GetInstance(resourceName, loaded); }
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')); } }