本文主要用于给新人提供实现剧情类游戏的基本思路。

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

然后是一个很重要的

[System.Serializable]

它的作用是使得在检查器窗口来看到我i们自己创建的类从而实现在检查器直接进行故事剧情的书写(当然如果你写个脚本通过excle 表进行写也行)

然后写一个剧情数据类

    public class StoryData{public string story;//故事文本public string[] choicestory;//选择的故事文本;public int[] nextindices;// 下一段剧情的索引数据;}

然后是 故事控制类

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class StoryController : MonoBehaviour
{public void OnChoiceMade(int index){switch (index) // 根据索引判断玩家做出了什么选择{case 1: // 如果玩家选择了第一个选项Debug.Log("You chose to 1"); // 输出日志信息break;case 2: // 如果玩家选择了第二个选项Debug.Log("You chose to 2"); // 输出日志信息break;case 3: // 如果玩家选择了第三个选项Debug.Log("You chose to 3"); // 输出日志信息break;case 4: // 如果玩家选择了第四个选项Debug.Log("You chose to 4."); // 输出日志信息break;default:break;}}
}

他的作用是报错了方便查找同时 还可以写其他功能实现扩展。

接下来是剧情展示类

讲一下思路

public class StoryDisplay : MonoBehaviour
{public StoryData[] storyDatas; // 剧情数据数组public Text storyText; // 显示故事文本的UI组件public Button[] choiceButtons; // 显示选择按钮的UI组件数组private int currentIndex = 0; // 当前剧情索引private StoryController storyController; // 剧情控制器void Start(){storyController = FindObjectOfType<StoryController>(); // 查找场景中唯一存在的StoryController组件Refresh(); // 刷新界面}void Refresh(){if (currentIndex >= 0 && currentIndex < storyDatas.Length) // 如果当前索引有效{StoryData data = storyDatas[currentIndex]; // 获取当前段落对应的数据对象storyText.text = data.storyText; // 显示故事文本for (int i = 0; i < choiceButtons.Length; i++) // 遍历所有按钮{Button button = choiceButtons[i];if (i < data.choiceTexts.Length) // 如果有对应的选择文本{button.gameObject.SetActive(true); // 激活按钮button.GetComponentInChildren<Text>().text = data.choiceTexts[i]; // 显示选择文本在按钮上int nextIndex = data.nextIndices[i];button.onClick.RemoveAllListeners();button.onClick.AddListener(() => OnClickChoiceButton(nextIndex));}else{button.gameObject.SetActive(false);}}}else{storyText.text = "The End.";}}void OnClickChoiceButton(int nextIndex){currentIndex = nextIndex; // 更新当前索引storyController.OnChoiceMade(currentIndex); // 通知剧情控制器玩家做出了选择Refresh(); // 刷新界面}
}

为什么发文助手总说让我提供代码 我这不都已经发了一堆了么。。。。。

Unity 剧情类游戏基础脚本相关推荐

  1. unity跑酷怎么添加金币_【Unity3D实战】零基础一步一步教你制作跑酷类游戏(填坑完整版)...

    在两个月前曾写了一篇<[Unity3D实战]零基础一步一步教你制作跑酷类游戏(1)>,里面一步一步演示了制作跑酷类游戏,然而由于时间原因,只写到了让角色往前移动为止.这个坑一直没有时间去填 ...

  2. [Unity C#教程] 游戏对象和脚本

    文章转载自:https://www.cnblogs.com/UnityYork/p/7704803.html [Unity C#教程] 游戏对象和脚本 博主最近在学习Unity,发现一个英文教程很好. ...

  3. Unity制作类胡闹厨房游戏 KitchenChaos 笔记整理

    本文章是油管上CodeMonkey的一个unity项目KitchenChaos的笔记整理,学习并整理这个项目主要是因为终于看到了一个比较完整地用到了unity的各种功能.风格较为清爽的.代码结构清晰的 ...

  4. 【Unity3D实战】零基础一步一步教你制作跑酷类游戏

    原转载自 https://blog.csdn.net/sun15980/article/details/51093048 ,已失效 新 [Unity3D开发小游戏]Unity3D零基础一步一步教你制作 ...

  5. unity双击打不开脚本_游戏对象和脚本 (创建一个时钟)

    该文章是一篇译文,附上原文链接 Game Objects and Scripts​catlikecoding.com 使用简单对象构建一个时钟 编写一个C#脚本 转动时钟的指针来显示时间 创建指针动画 ...

  6. 【Unity3D实战】零基础一步一步教你制作酷跑类游戏(1)

    . 首先做个自我介绍,我是一名在读的大三学生,软件工程游戏开发方向.一直以来,我梦想着成为一名游戏开发者,所以在大三分方向时我毫不犹豫地选择了游戏开发方向.刚刚接触 Unity3D一段时间,现在需要大 ...

  7. fps射击HTML网页游戏,关于Unity中FPS第一人称射击类游戏制作(专题十)

    当前Unity最新版本5.6.3f1,我使用的是5.5.1f1 FPS第一人称射击类游戏实例 场景搭建 1.创建Unity项目工程和文件目录,保存场景 2.导入人物模型和子弹碎片的资源包charact ...

  8. 【Unity】 节奏类游戏的表盘卡点功能

    目录 1:前言 2:开始  ---(方案一根据音频数据自动生成节奏点) 2.1:功能实现选择---音频可视化 2.2:结论-(结果不准确) 3:游戏表盘的实现----(方案二自给自足,自动输入用时自动 ...

  9. Unity 3D数学\图形学基础-游戏开发(向量)

    Unity 3D数学\图形学基础-游戏开发(向量) 向量运算的几何意义 标量与向量的计算 向量的模长 标准化向量 normalize 0向量 向量与向量的加减法 两点间距离公式(向量间距离) 点积,点 ...

最新文章

  1. Activity采用栈式管理的理解
  2. flood fill算法
  3. 自动装箱自动拆箱java,自动装箱?拆箱?==问题?详解java面试常见的一个问题...
  4. AngularJS日期格式化
  5. 世纪华通与华为签署合作协议,加快推进绿色数据中心建设
  6. 事业编前提下,在一个大单位工作好还是在一个小单位工作好?
  7. ubuntu18.04 有线未托管解决
  8. swagger3 设置值可以为空_swagger3.0使用及https问题处理
  9. Linux驱动中断函数参数详解
  10. 【python+selenium】保留浏览器的自定义设置,不恢复浏览器默认设置
  11. 抖音上热门的7大小技巧
  12. Python写入word文档
  13. 计算机网络管理工程师证书考试试题,(信息化知识)国家信息化人才考试计算机网络工程师模拟试题.pdf...
  14. Manjaro21-kde版安装全记录
  15. 计算机义务维修事迹材料,学雷锋义务维修电脑活动策划书与学雷锋事迹材料:身边的榜样合集.doc...
  16. 仲恺计算机二级c语言,2009年下半年(第30次)全国计算机等级考试(NCRE)广东考区报考简章...
  17. 车用总线 | CAN XL最新技术的CiA官方解答
  18. 汽车保险客户分类问题
  19. Pandas DataFrame: groupby agg的使用
  20. P2356 弹珠游戏

热门文章

  1. shell脚本编写教程(基于项目)
  2. 已连接网络,出现浏览器无法连接到代理服务器
  3. -webkit-overflow-scrolling:touch导致ios中z-index失效(弹窗层级设置无效)
  4. Python: 命令行格式化打印之表格
  5. SAS Learning
  6. android应用开发大赛,喜讯:我院首届“Android应用开发大赛”圆满落幕
  7. python 数据挖掘 关联规则挖掘 实践 Apriori FP-Tree mlxtend
  8. windows10激活出现0xC0000022
  9. 五大最受欢迎的BUG管理系统
  10. 风控策略精准运维的制胜点,一个重要却容易被轻视的内容