public void InitStatic(BgStaticInfo bgInfo) { if (bgInfo == null) { return; } layerno = bgInfo.layerno; var imageRes = StageMgr.GetInstance().ImageRes; if (imageRes != null && imageRes.LoadOk) { m_Group = bgInfo.srpiteno_Group; m_Image = bgInfo.spriteno_Image; m_MaskType = bgInfo.mask; m_SceneType = SceneLayerType.Static; m_TransType = bgInfo.transType; InitSpriteRender(bgInfo.transType); var frame = imageRes.GetImageFrame((PlayerState)bgInfo.srpiteno_Group, bgInfo.spriteno_Image); UpdateImageFrame(frame, ActionFlip.afNone, ActionDrawMode.adNone, bgInfo.mask == MaskType.none); m_IsInited = true; } }
public void CreateLayer(SceneLayerType type, string layerName, int instanceID, string resPath, Action <SceneLayer> onComplete) { GameObject layerPrefab = null; switch (type) { case SceneLayerType.ThreeD: layerPrefab = PrefabThreeDSceneLayer; break; case SceneLayerType.UI: layerPrefab = PrefabUISceneLayer; break; } if (layerPrefab == null) { Debug.LogError("SceneManager:CreateLayer layerPrefab is null"); onComplete(null); } var layerGo = GameObject.Instantiate <GameObject>(layerPrefab); var layer = layerGo.GetComponent <SceneLayer>(); layer.SetName(layerName); layerGo.name = string.Format("{0}_{1}_LayerRoot", layerName, instanceID); AddLayerToLoadingRoot(layer); var iter = AssetLoader.Instance.LoadAsset <GameObject>(resPath, (p, asset) => { OnLoadLayerAssetComplete(layer, asset, onComplete); }); m_coroutineManager.StartCorcoutine(iter); }
public void InitAnimated(BgAniInfo anInfo) { if (anInfo == null) { return; } layerno = anInfo.layerno; var imageRes = StageMgr.GetInstance().ImageRes; if (imageRes != null && imageRes.LoadOk) { // 处理动画层 m_Group = anInfo.actionno; m_MaskType = anInfo.mask; m_SceneType = SceneLayerType.Animation; m_TransType = anInfo.transType; InitSpriteRender(anInfo.transType); m_IsInited = true; if (StageMgr.GetInstance().HasBeginAction(m_Group)) { // 初始化动画 var ani = this.ImageAni; if (ani != null) { ani.Type = ImageAnimation.ImageAnimationType.Scene; if (ani.PlayerPlayerAni((PlayerState)m_Group, true)) { RefreshCurFrame(ani); } } } } }
public GameObject showScene(int sceneIndex, SceneLayerType layerType = SceneLayerType.E_GAME_LAYER_TYPE) { if (sceneList == null || sceneList.Count == 0) { Debug.Log("GameInstance::showScene, empty scene list"); return(null); } GameObject scene = sceneList.getIndex(sceneIndex); if (scene == null) { Debug.Log("GameInstance::showScene, cannot find gameobj of index:" + sceneIndex); return(null); } GameObject parentLayer = layerType == SceneLayerType.E_GAME_LAYER_TYPE ? gameLayer : menuLayer; //不管怎么样,都要清除menu for (int i = 0; i < menuLayer.transform.childCount; i++) { GameObject child = menuLayer.transform.GetChild(i).gameObject; Destroy(child); } //如果是展示game,清除GameLayer下所有子物体 if (layerType == SceneLayerType.E_GAME_LAYER_TYPE) { for (int i = 0; i < gameLayer.transform.childCount; i++) { GameObject child = gameLayer.transform.GetChild(i).gameObject; Destroy(child); } } //将go放到GameLayer下 GameObject newGameScene = GameObject.Instantiate(scene); newGameScene.SetActive(true); newGameScene.transform.SetParent(parentLayer.transform, false); newGameScene.transform.localPosition = new Vector3(0, 0, 0); //加个黑背景突出层次 if (layerType == SceneLayerType.E_MENU_LAYER_TYPE) { Image menuBg = newGameScene.AddComponent <Image>(); menuBg.color = new Color(0, 0, 0, 0.72f); } return(newGameScene); }