2024/8/11
unity安装 preference改语言 设置编译器
狼人杀
2024/8/12
模块
1、startGame
startManager 用于加载 gameManager
2、gameManager
通过 gameManager 负责游戏开始、运行、结束、承载数据、加载场景且不销毁
子类 uiManager
加载所有游戏的 ui 面板,存储起来,实例化各个面板处理对应时间,并构建任务链
3、messageManager
存储本场游戏所有玩家的身份、操作信息、判定胜利和执行
4、audioSourceManager
管理音频 背景音乐
5、uiManager
管理 ui 界面,保存所有面板,加载面板切换、页面切换
5.1、wolfPanel
狼人面板
晚上商量刀的对象并投票,票高者被刀,平票的时候随机选择一名玩家
5.2、civilianPanel
平民面板
5.3、hunterPanel
猎人面板
每名玩家出局后给 10 秒判定时间,若其为并非被女巫毒杀的猎人牌,则可以选择使用技能,开枪带走一个牌
5.4、witchPanel
女巫面板
只有在对应药存在的情况下才能点击
左-使用解药
选择确认使用解药吗
右-使用毒药
选择毒杀的人
5.5、prophetPanel
预言家面板
点击一个未被查验且存活的其余玩家的头像,再点击确认后可知晓其对应的身份
5.5、dayNightPanel
白天黑夜切换面板
6、basePanel
面板的公共基类,注重代码复用性
6.1、mainPanel
主面板,负责主界面跳转至其他面板
6.2、gamePanel
游戏面板
给所有玩家发身份,将信息传递给 messageManager
跳转至加载面板
异步加载游戏场景
6.3、helpPanel
帮助面板
给玩家介绍不同身份的规则
6.4、setPanel
设置面板
设置背景音乐
大小
语言切换
UI
使用 FairyGUI 或者不用
FairyGUI 是一个功能强大的 UI 框架,特别适用于游戏开发。以下是 FairyGUI 的主要功能和优点,以及在 Unity 中使用它的好处:
FairyGUI 的主要功能和优点 丰富的 UI 组件:
提供了丰富的 UI 组件,如按钮、文本框、列表、滚动视图等,方便开发者快速构建复杂的 UI 界面。 高效的资源管理:
支持将 UI 资源打包成 .bytes 文件,减少资源加载时间,提高运行效率。 跨平台支持:
支持多平台,包括 iOS、Android、Windows 和 macOS,确保 UI 在不同平台上的一致性。 动画和特效:
支持复杂的动画和特效,能够轻松实现动态 UI 效果。 可视化编辑器:
提供 FairyGUI-Editor,可视化设计 UI 界面,所见即所得,极大提高开发效率。 在 Unity 中使用 FairyGUI 的好处 快速构建 UI:
使用 FairyGUI 可以快速构建复杂的 UI 界面,减少开发时间和成本。 高效的性能:
FairyGUI 对资源管理和性能优化做了大量工作,能够在保证高效运行的同时提供丰富的 UI 效果。 易于维护:
UI 资源和逻辑分离,便于后期维护和更新。 做狼人杀游戏可以不用 FairyGUI 吗? 当然可以。虽然 FairyGUI 提供了很多便利,但你也可以选择其他 UI 框架或 Unity 自带的 UI 系统来实现你的狼人杀游戏。以下是一些替代方案:
替代方案 Unity 自带的 UI 系统(UGUI):
Unity 自带的 UI 系统功能强大,能够满足大多数游戏的 UI 需求。 提供了丰富的 UI 组件和动画支持。 通过 Canvas 和 RectTransform 进行布局和管理。 其他第三方 UI 框架:
NGUI:一个功能强大的 UI 框架,曾经是 Unity 中最流行的 UI 解决方案之一。 TextMeshPro:虽然主要用于文本渲染,但也提供了一些基本的 UI 组件,适合需要高质量文本显示的项目。 选择合适的 UI 框架 选择 UI 框架时,需要考虑以下因素:
项目需求:
根据项目的具体需求选择合适的 UI 框架。如果你的项目需要复杂的动画和特效,FairyGUI 可能是一个不错的选择。 团队熟悉度:
选择团队成员熟悉的 UI 框架,可以减少学习成本,提高开发效率。 性能要求:
如果项目对性能要求较高,需要选择性能优化较好的 UI 框架。 总之,FairyGUI 是一个功能强大的 UI 框架,适用于需要复杂 UI 界面的游戏项目。如果你的狼人杀游戏对 UI 要求较高,使用 FairyGUI 可以提高开发效率和 UI 质量。但如果你的项目 UI 需求较为简单,Unity 自带的 UI 系统(UGUI)也完全可以胜任。
步骤一:准备资源
- 准备图片资源:
- 过场动画图片、角色身份图片以及各种编号图片。
步骤二:使用 FairyGUI-Editor 创建 UI 项目
- 下载并安装 FairyGUI-Editor:
- 从 FairyGUI-Editor GitHub 仓库 下载并解压 FairyGUI-Editor。
- 运行
FairyGUI-Editor.exe
。
- 创建新的 UI 项目:
- 打开 FairyGUI-Editor,创建一个新的 UI 项目。
- 导入图片资源:
- 在 FairyGUI-Editor 中,将你的图片资源导入到项目中。
- 创建 UI 组件:
- 使用 FairyGUI-Editor 创建需要的 UI 组件,例如过场动画、角色身份显示和编号显示。
- 你可以为这些组件添加动画效果和交互逻辑。
- 导出 UI 资源:
- 设计完成后,使用 FairyGUI-Editor 将 UI 项目导出为 Unity 可用的资源包。导出的资源包通常包含
.bytes
文件和相关的图片资源。
- 设计完成后,使用 FairyGUI-Editor 将 UI 项目导出为 Unity 可用的资源包。导出的资源包通常包含
步骤三:在 Unity 中使用导出的 UI 资源
在 Unity 中控制动画:
- 在 Unity 中通过脚本控制动画的播放。例如:
{
transitionPanel.**GetTransition**(“TransitionName”).**Play**();
}
public void **PlayRoleAnimation**()
{
rolePanel.**GetTransition**(“RoleTransitionName”).**Play**();
}
public void **PlayNumberAnimation**()
{
numberPanel.**GetTransition**(“NumberTransitionName”).**Play**();
}
通过这些步骤,你可以将过场动画图片、角色身份图片以及各种编号图片导入 FairyGUI,并在 Unity 中使用它们来创建丰富的动画效果和 UI 界面。
导入 FairyGUI 核心库:
从 FairyGUI GitHub 仓库 下载并导入 FairyGUI 核心库到 Unity 项目中。
导入 UI 资源:
将 FairyGUI-Editor 导出的 UI 资源包导入到 Unity 项目中。你可以将这些资源放在 Assets/UI
文件夹中。
加载和显示 UI:
- 在 Unity 中创建一个新的 C# 脚本,例如
UIManager.cs
,用于加载和显示 UI。
using UnityEngine;
public class UIManager : MonoBehaviour
{
private GComponent transitionPanel;
private GComponent rolePanel;
private GComponent numberPanel;
void Start()
{
// 加载 UI 包
UIPackage.AddPackage(“UI/YourUIPackage”);
// 创建并显示过场动画面板
transitionPanel = UIPackage.CreateObject(“YourUIPackage”, “TransitionPanel”).asCom;
GRoot.inst.AddChild(transitionPanel);
transitionPanel.visible = false; // 初始时隐藏
// 创建并显示角色身份面板
rolePanel = UIPackage.CreateObject(“YourUIPackage”, “RolePanel”).asCom;
GRoot.inst.AddChild(rolePanel);
rolePanel.visible = false; // 初始时隐藏
// 创建并显示编号面板
numberPanel = UIPackage.CreateObject(“YourUIPackage”, “NumberPanel”).asCom;
GRoot.inst.AddChild(numberPanel);
numberPanel.visible = false; // 初始时隐藏
}
public void ShowTransitionPanel()
{
transitionPanel.visible = true;
rolePanel.visible = false;
numberPanel.visible = false;
}
public void ShowRolePanel()
{
transitionPanel.visible = false;
rolePanel.visible = true;
numberPanel.visible = false;
}
public void ShowNumberPanel()
{
transitionPanel.visible = false;
rolePanel.visible = false;
numberPanel.visible = true;
}
}
控制面板显示: – 在你的游戏逻辑中调用 ShowTransitionPanel
、ShowRolePanel
和 ShowNumberPanel
方法来控制面板的显示和隐藏。步骤四:添加动画效果
在 FairyGUI-Editor 中添加动画:
在 FairyGUI-Editor 中为你的 UI 组件添加动画效果,例如过场动画的淡入淡出、角色身份的切换动画等。