SRPG游戏开发(五十一)第十章 游戏剧情 - 九 游戏导演与测试 (Game Director and Testing)

本文档详细介绍了在SRPG游戏开发中,如何实现游戏导演类(GameDirector)以统筹剧情和事件,并进行测试。内容包括导演类的读取剧本、执行/停止剧本以及输入处理功能的设计和实现,以及测试剧本、测试步骤和测试代码的展示。通过测试确保游戏剧情的顺畅执行。
摘要由CSDN通过智能技术生成

返回总目录

第十章 游戏剧情(Game Plot)

在大部分的RPG中,故事剧情是非常重要的。例如某些播放某些过场动画,人物台词等文字叙述的显示。这些可以推动整个游戏流程。

在Unity商店中,有一些剧情类的插件。我们编写的这个可以配合那些插件使用。



九 游戏导演与测试 (Game Director and Testing)

我们在之前已经完成了许多典型命令的编写,其它命令不再说明,大同小异。

现在,我们有了一个剧情动作ScenarioAction,它用来指导我们剧情的走向;

以后还会有MapAction,它用来指导我们地图是如何建立的,并将地图事件指向剧情;

不过在这之前我们还没有“导演”来统筹规划。

这一节,我们创建这个导演,并且测试剧情。


1 游戏导演类(Class GameDirector)

我们的导演是统筹规划游戏所有剧情与事件的,属于管理器一类,所以它应该是个单例。

我们再来看看它的基本功能:

  • 读取剧本;

  • 执行剧本;

  • 停止执行剧本;

基本功能基本上只有以上三个。但不要忘记,在游戏进行初期需要一个入口,这个入口就是“首次运行的剧本”。而执行剧本时,我们需要每帧都运行游戏,你可以使用Update(),也可以使用Coroutine

基于以上,我们来创建导演类:

using System;
using System.Collections;
using UnityEngine;

namespace DR.Book.SRPG_Dev.ScriptManagement
{
   
    using DR.Book.SRPG_Dev.Framework;
    using DR.Book.SRPG_Dev.Models;

    public class GameDirector : UnitySingleton<GameDirector>
    {
   
        #region Fields
        [SerializeField]
        private bool m_DebugInfo = true;
        [SerializeField]
        private string m_FirstScenario = "main";
        [SerializeField]
        private bool m_FirstScenarioIsTxt = true;

        private IGameAction m_GameAction = null;
        private Coroutine m_Coroutine = null;
        #endregion

        #region Properties
        // 省略Properties
        #endregion

        // TODO 读取剧本、运行剧本、停止剧本

    }
}
1.1 读取剧本动作 (Load Scenario Action)

关于读取剧本,我们新建一个Model称为ScenarioModel(第八章已经写过多次,具体不再重复),里面包含了获取剧本的方法IScenario Get(string name, bool txt = true)(我们的剧本只使用了两种格式)。

我们读取剧本后需要创建我们的ScenarioAction

所以我们的步骤是:

  • ScenarioModel读取剧本文本;

  • 创建ScenarioAction

  • 读取命令执行器;

  • 并让ScenarioAction读取剧本文本。

创建方法:

        /// <summary>
        /// 读取剧本
        /// </summary>
        /// <param name="name"></param>
        /// <returns></returns>
        public virtual bool LoadScenario(string name, bool txt = true)
        {
   
            ScenarioModel model = ModelManager.models.Get<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值