GameFramework制作游戏(一)

前言:关于去如何去下载安装框架,这里我就不教了,网上太多了
这是下载地址:https://gameframework.cn/download/

1.创建第一个脚本

当我们开始做的时候,创建一个Sence,然后把GameFramework预制体拖进来,如下图
在这里插入图片描述
在这里插入图片描述
创建一个脚本Demo11_ProcedureLaunch,继承自procedureBase

using GameFramework.Procedure;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityGameFramework.Runtime;
using ProcedureOwner = GameFramework.Fsm.IFsm<GameFramework.Procedure.IProcedureManager>;
public class Demo11_ProcedureLaunch : ProcedureBase
{
     protected override void OnEnter(ProcedureOwner procedureOwner) 
    {
        base.OnEnter(procedureOwner);
        Debug.LogError("1111");//在这里可以打印出你想要的东西,例如sayHelloWorld
    }
}

把你写的脚本放到流程里
在这里插入图片描述

2.然后做切换场景

using GameFramework.Procedure;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityGameFramework.Runtime;
using ProcedureOwner = GameFramework.Fsm.IFsm<GameFramework.Procedure.IProcedureManager>;
public class Demo11_ProcedureLaunch : ProcedureBase
{
     protected override void OnEnter(ProcedureOwner procedureOwner) //你可以理解成Start()  生命周期
    {
        base.OnEnter(procedureOwner);
        Debug.LogError("1111");//在这里可以打印出你想要的东西,例如sayHelloWorld

        SceneComponent Scene
           = UnityGameFramework.Runtime.GameEntry.GetComponent<SceneComponent>(); //是专门用于处理场景逻辑的框架组件,看下图

        // 切换场景
        Scene.LoadScene("Assets/Demo11/Demo11_Meun.unity", this);//场景路径

        // 切换流程
        ChangeState<Demo11_Meun>(procedureOwner);
        Debug.LogError("??/");
    }
}

在这里插入图片描述
这个时候我们需要创建一个新的空场景Demo11_Meun场景,和一个Demo11_Meun脚本,用于跳转
脚本很简单

using GameFramework.Procedure;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityGameFramework.Runtime;
using ProcedureOwner = GameFramework.Fsm.IFsm<GameFramework.Procedure.IProcedureManager>;

public class Demo11_Meun : ProcedureBase//继承是为了把该脚本写进流程
{
    protected override void OnEnter(ProcedureOwner procedureOwner) 
    {
        base.OnEnter(procedureOwner);
    }
}

继承ProcedureBase,进入流程后,记得勾选流程
在这里插入图片描述
勾上你要显示的菜单脚本
然后打开Build Settings 把场景放进来
在这里插入图片描述
运行
在这里插入图片描述
场景就加载出来了。

3.场景第二次加载,卸载第一次加载的场景,原场景是不会卸载的

创建Demo11_Game场景,创建Demo11_Game脚本
在这里插入图片描述
脚本继续继承,记得勾选流程

using GameFramework.Procedure;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using ProcedureOwner = GameFramework.Fsm.IFsm<GameFramework.Procedure.IProcedureManager>;

public class Demo11_Game : ProcedureBase
{
    protected override void OnEnter(ProcedureOwner procedureOwner)
    {
        base.OnEnter(procedureOwner);

        Debug.Log("进入游戏流程,可以在这里处理游戏逻辑,这条日志不会打印,因为没有切换到Game流程");
    }
}

写个控制脚本Demo11_Controller继承Monobehaviour,创建一个Button,在Demo11_Meun场景

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityGameFramework.Runtime;

public class Demo11_Controller : MonoBehaviour
{
    public void NextMethod()
    {
        // 获取框架场景组件
        SceneComponent Scene
            = UnityGameFramework.Runtime.GameEntry.GetComponent<SceneComponent>();

        // 卸载所有场景
        string[] loadedSceneAssetNames = Scene.GetLoadedSceneAssetNames();
        for (int i = 0; i < loadedSceneAssetNames.Length; i++)
        {
            Scene.UnloadScene(loadedSceneAssetNames[i]);
        }

        // 加载游戏场景
        Scene.LoadScene("Assets/Demo11/Demo11_Game.unity", this);
    }
}

在这里插入图片描述
记得吧Demo11_Game场景放到BuildSettings里面,
运行
在这里插入图片描述
点击按钮,进入Game场景,卸载Menu场景,我们初始的第一个场景是不会被卸载的。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_42489774/article/details/125926905
今日推荐