using UnityEngine; using System.Collections; using System; namespace GFGGame { public class SceneController { public static void UpdateLoginScene(GameObject sceneObj) { //背景 Transform tf = sceneObj.transform.Find("Bg"); SpriteRenderer spr = tf.GetComponent(); var resPath = ResPathUtil.GetDressUpPath("jhsy_bg", "jpg"); Sprite sp = GFGAsset.Load(resPath); DressUpUtil.AddAssetReleaser(tf.gameObject, resPath); spr.sprite = sp; //角色 DressUpUtil.UpdateBody("ui_loginrole", sceneObj, true, null); } public static void UpdateMainScene(GameObject sceneObj) { //背景 Transform tf = sceneObj.transform.Find("Bg"); SpriteRenderer spr = tf.GetComponent(); var resPath = ResPathUtil.GetDressUpPath("zjm_bg1", "jpg"); Sprite sp = GFGAsset.Load(resPath); DressUpUtil.AddAssetReleaser(tf.gameObject, resPath); spr.sprite = sp; //角色 CustomSuitData suitSavedData = CustomSuitDataManager.GetCurrentSuitList(); int[] equipDatas = suitSavedData.equipDatas; UpdateRole(equipDatas, sceneObj, false); if (suitSavedData.pic > 0 && suitSavedData.suitId > 0) { SuitCfg suitCfg = SuitCfgArray.Instance.GetCfg(suitSavedData.suitId); DressUpUtil.UpdateBody(suitCfg.picRes, sceneObj, !string.IsNullOrEmpty(suitCfg.aniRes), suitCfg.effRes); } else { DressUpUtil.UpdateBody(null, sceneObj); } } public static void UpdateRole(int[] equipDatas, GameObject sceneObj, bool needSetMask = false, int[] exceptTypes = null, bool showAni = true) { Reset(sceneObj); int count = equipDatas.Length; for (int i = 0; i < count; i++) { int id = (int)equipDatas[i]; if (exceptTypes != null) { int subType = ItemUtil.GetItemSubType(id); if (Array.IndexOf(exceptTypes, subType) >= 0) { continue; } } DressUpUtil.AddItem(id, sceneObj, needSetMask, showAni); } DressUpUtil.UpdateBody(null, sceneObj, false, null, needSetMask); } public static void UpdateDialogBg(string value, GameObject sceneObj) { Transform tf = sceneObj.transform.Find("Bg"); SpriteRenderer spr = tf.GetComponent(); if (value == "0") { spr.sprite = null; } else { var resPath = ResPathUtil.GetDressUpPath(value, "jpg"); Sprite sp = GFGAsset.Load(resPath); DressUpUtil.AddAssetReleaser(tf.gameObject, resPath); spr.sprite = sp; } } public static void UpdateDialogPic(string value, GameObject sceneObj) { Transform tf = sceneObj.transform.Find("Pic"); SpriteRenderer spr = tf.GetComponent(); if (value == "0") { spr.sprite = null; } else { void UpdateDialogPicAlpha(object param) { Color c = spr.color; if (spr.enabled && c.a < 1f) { c.a += 0.05f; spr.color = c; } else { FairyGUI.Timers.inst.Remove(UpdateDialogPicAlpha); } } var resPath = ResPathUtil.GetNpcPicSPath(value); Sprite sp = GFGAsset.Load(resPath); DressUpUtil.AddAssetReleaser(tf.gameObject, resPath); spr.sprite = sp; Color c = spr.color; c.a = 0f; spr.color = c; FairyGUI.Timers.inst.AddUpdate(UpdateDialogPicAlpha); } } public static void UpdateFightTarget(string value, GameObject sceneObj) { Transform tf = sceneObj.transform.Find("Npc"); SpriteRenderer spr = tf.GetComponent(); var resPath = ResPathUtil.GetNpcPicFPath(value); Sprite sp = GFGAsset.Load(resPath); DressUpUtil.AddAssetReleaser(tf.gameObject, resPath); spr.sprite = sp; } private static void Reset(GameObject sceneObj) { //背景层次 Transform bg = sceneObj.transform.Find("Bg"); if (bg != null) { SpriteRenderer spr = bg.GetComponent(); if (spr != null) { ItemTypeCfg typeCfg = ItemTypeCfgArray.Instance.GetCfg(ConstDressUpItemType.BEI_JING); spr.sortingOrder = typeCfg.defaultLayer; } } //角色清理 Transform role = sceneObj.transform.Find("Role"); if (role != null) { int childCount = role.childCount; for (int i = childCount - 1; i >= 0; --i) { Transform child = role.GetChild(i); if (child.gameObject.name != "Body") { GameObject.DestroyImmediate(child.gameObject); } } } } } }