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