0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何在Unity中制作游戏的开始菜单

454398 来源:网络整理 作者:网络整理 2019-11-19 11:09 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

第1步:制作平面并将其放置在相机前

如何在Unity中制作游戏的开始菜单

打开Unity并将场景另存为MainMenu。

在“层次结构”面板中单击“创建-平面”。将其重命名为“背景”。

将主摄像机向下旋转90度,并将其投影从“透视”更改为“正交”。

调整摄像机的变换,使其位于菜单上方8-10个单位,向下看。

缩放平面背景以完全适合相机预览。

完成后,它的外观应类似于上图。

步骤2:点亮

添加灯光。为此,请在“层次结构”面板中选择“创建”,然后单击“定向光”。

定向光在3D空间中的什么位置都无关紧要。因此,无论如何,它都会提供相同的照明。

因此,在调整了照明的方向以照到背景上之后,请沿Y方向将照明灯提高20个单位左右,以保持视野清晰在场景视图中。

我将灯光调整为具有(0,20,0)位置和(60,0,-20)旋转的变换。

我也进行了更改再次将其强度设为0.4。

再次查看该步骤完成后的图像。

第3步:添加纹理

我们的背景目前看起来很普通,但是我们可以轻松地对其进行调味。只需拿一台数码相机/智能手机,然后为方便,有趣的东西(例如地板,天花板,墙壁等)拍照,然后将其上传到您的计算机即可。

为正在处理的Unity项目在Assets文件夹中创建一个名为Textures的新文件夹。右键单击Unity中“项目”面板中的文件夹,然后选择“在资源管理器中显示”。将您拍摄的图片复制并粘贴到Textures文件夹中。

在“层次结构”中选择“背景”后,单击图片并将其从“项目”面板的“ Textures”文件夹中拖动到“检查器”面板中,在此处将其添加为背景的新纹理。参见图像。

步骤4:添加文本

使用顶部的“游戏对象”下拉工具栏创建一个空的游戏对象Unity窗口的重命名为“文本”。重置其变换。

在“层次结构”面板中单击“创建-3D文本”。重置其变换。

重命名3D文本对象,然后输入要在“检查器”的“文本网格”组件中显示的文本。

将其围绕X或Z旋转90度轴,以便在摄影机视图中正确显示。

将3D文本对象拖到“层次结构”中的空Text游戏对象中。

根据需要复制3D文本。

步骤5:转到获取一些字体(您已经拥有的字体)

您已经有很多字体。您可以通过打开资源管理器并转到OS/Windows/Fonts下的名为Fonts的文件夹来访问它们(在Windows上)。

在Unity项目面板中,在Assets中创建一个新文件夹并调用

将Unity项目所需的字体从计算机的fonts文件夹复制并粘贴到您在Projects资产文件夹中创建的新Fonts文件夹。

注意:这很可能会为每种字体复制几个不同的文件,其中一个用于常规,粗体,斜体等。

选择3D文本您要在“层次结构”面板中更改其字体,然后将所需的字体从项目面板的fonts文件夹中拖到Inspector的Text Mesh组件中标有“ font”的框中。

您可以更改3D文本的“文本网格”组件中的字体颜色,大小和其他属性。如果您在“层次结构”中选择了要编辑的3D文本,它将显示在“检查器”面板中。

文本很可能看起来有点模糊。您可以通过显着增大字体大小来进行清理,尽管这会打乱相机的视图,因此您必须重新调整相机和背景平面的大小。

步骤6:将鼠标悬停在其上时,使文本更改颜色

在项目面板中创建一个名为Scripts的新文件夹。

创建一个新文件夹CSharp脚本并将其命名为MouseHover。

在MonoDevelop中打开该脚本。

此脚本中包含三个功能。第一个告诉文本为原始颜色。第二个命令指示文本在鼠标触摸时更改颜色,第三个命令指示文本在鼠标不再悬停在其上之后返回其原始颜色。

void Start(){

renderer.material.color = Color.black;

}

void OnMouseEnter(){

renderer.material.color = Color.red;

}

void OnMouseExit() {

renderer.material.color = Color.black;

}

通过将脚本从项目面板拖到层次结构中的3D文本对象的名称中,将脚本添加到每个文本中。

为了使脚本起作用,我们需要在每个文本中添加对撞机3D文本,以便代码知道鼠标是否在触摸它们。

要添加对撞机,请在“层次结构”中选择一段3D文本,转到“检查器”面板,然后选择“添加组件-物理-撞机箱。在每个文本中添加对撞机框,然后选中“正在触发”框。

通过单击屏幕顶部中间的播放按钮并悬停鼠标来测试按钮是否更改颜色。

步骤7:编写脚本来控制按钮

创建一个新脚本并将其命名为MainMenu。将其归档在Scripts文件夹中,然后在MonoDevelop中将其打开。

声明布尔(真/假)变量,您希望菜单上的每个按钮都有一个。我有两个按钮,所以我写了:

public bool isStart;

public bool isQuit;

然后,写一个叫做OnMouseUp()的函数。释放鼠标按钮时将激活此功能,这是一种比OnMouseDown()更好的激活按钮的方法,因为它可以防止在按住鼠标按钮的同时重复执行该功能。

void OnMouseUp(){

if(isStart)

{

Application.LoadLevel(1);

}

if (isQuit)

{

Application.Quit();

}

}

Application.LoadLevel(1)加载游戏的场景编号1。 (菜单场景应为0级。您可以在“构建设置”的“文件”下更改哪个场景。)

Application.Quit()退出游戏,尽管这只会在游戏为作为PC/Mac应用程序打开。

第8步:让按钮做事!

添加每个按钮的3D文本对象的MainMenu脚本。

由于您为按钮的每个类别声明了公共布尔,因此它们应显示在检查器中的每个按钮上。转到检查器,并为每个按钮检查适当的布尔变量。看到上面的图像,应该是什么样子。

就这样,您完成了!您可以在MainMenu脚本中添加其他代码行,以确保其正常工作。只需告诉它单击按钮即可更改按钮的颜色(与将鼠标悬停在按钮上时,更改为其他颜色)。

void OnMouseUp() {

if (isQuit) {

Application.Quit ();

} if(isStart) {

Application.LoadLevel (1);

renderer.material.color=Color.cyan;

}

}
责任编辑:wv

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 软件
    +关注

    关注

    69

    文章

    5354

    浏览量

    91873
  • Unity
    +关注

    关注

    1

    文章

    131

    浏览量

    23387
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    TouchGFX 滚轮式菜单选择界面容器的应用介绍

    1. 菜单选择界面介绍在 STM32N6570-DK 开发板的开机视频,有一个流畅炫酷的滚轮式菜单选择界面,通过选择不同的图标,可以实现界面的切换。这里将这个功能设计成了一个容器,本 LAT的附件
    发表于 04-15 16:01 0次下载

    02. 如何在 Allegro 快速自定义字体?| 芯巧Allegro PCB 设计小诀窍

    Allegro PCB设计小诀窍系列--如何在Allegro快速自定义字体背景介绍:在进行PCB设计时,设计人员通常会在PCB上添加各种丝印信息,用来标注元器件的位号、PCB版本信息、绘制时间以及
    发表于 04-03 16:34

    01. 如何在 Allegro 快速区别不同网络?| 芯巧Allegro PCB 设计小诀窍

    Allegro PCB设计小诀窍系列--如何在Allegro快速区别不同网络背景介绍:Allegro PCB设计工具可以通过高亮操作将选中的网络点亮,但是当我们的布线非常密集时,是不太好去进行
    发表于 04-03 15:51

    使用MoonBit和Raylib构建原生移动端游戏

    当你想做一个简单的手机游戏,比如 Flappy Bird、2048、贪吃蛇——你的第一反应可能是打开 Unity 或者 Godot。但你有没有想过:对于一个只需要画几个矩形和圆的游戏,你真的需要一个完整的
    的头像 发表于 03-14 11:21 823次阅读
    使用MoonBit和Raylib构建原生移动端<b class='flag-5'>游戏</b>

    LAT1573_TouchGFX 滚轮式菜单选择界面容器的应用介绍

    在 STM32N6570-DK 开发板的开机视频,有一个流畅炫酷的滚轮式菜单选择界面,通过选择不同的图标,可以实现界面的切换。这里将这个功能设计成了一个容器,本 LAT的附件提供了一个菜单选择界面
    发表于 03-11 10:43 0次下载

    何在VS code配置Zephyr集成开发环境

    上一篇文章介绍了如何在VS code中使用瑞萨官方插件为RA芯片创建项目与项目调试,相信大家对RA在VS code的开发有了基础的了解。
    的头像 发表于 11-05 14:46 1761次阅读
    如<b class='flag-5'>何在</b>VS code<b class='flag-5'>中</b>配置Zephyr集成开发环境

    地平线与Unity中国达成战略合作

    近日,中国智驾科技领军企业地平线与全球领先的实时3D内容创作和运营平台Unity正式签署战略合作协议。双方将深度融合地平线HSD (Horizon SuperDrive) 人机交互系统与Unity
    的头像 发表于 11-03 16:43 1669次阅读

    Unity开发者大会Unite2025点亮上海,团结引擎加速本土创新落地

    现场,线上观看人数再创新高,共同见证Unity中国在本土化道路上的最新成果。 ​ 自2012年Unity首次在中国举办Unite以来,这一年度盛会已成为中国开发者了解前沿技术、分享创新实践的重要平台。从Unity 4的初次亮相到
    的头像 发表于 10-29 17:08 752次阅读
    <b class='flag-5'>Unity</b>开发者大会Unite2025点亮上海,团结引擎加速本土创新落地

    何在 buildroot 的 rootfs 显示当前目录?

    何在 buildroot 的 rootfs 显示当前目录?
    发表于 09-03 07:02

    termux调试python猜数字游戏

    用termux做一个猜数字游戏 下面是在Termux创建猜数字游戏的步骤及完整实现方案,结合Python实现(最适配Termux环境): ? 一、环境准备(Termux基础配置) 1.
    发表于 08-29 17:15

    何在 Keil C51 对 SPROM 进行编程?

    何在 Keil C51 对 SPROM 进行编程?
    发表于 08-25 07:53

    在ccg3pa何在发送goodcrc之前了解已收到的数据包?

    在 CCG3PA ,考虑到源端正在向汇端发送Source_Capability或其他信息,此时汇端如何在从汇端发送GoodCRC之前知道汇端收到了哪些信息? 无论我们收到什么消息,天气都会开始评估回调函数是在GoodCRC 之
    发表于 05-21 08:12

    游戏手柄振动马达:沉浸式游戏体验的核心

    游戏手柄振动马达是现代游戏设备不可或缺的一部分,它为玩家提供了更加沉浸式的游戏体验。通过精确的振动反馈,游戏手柄振动马达能够将
    的头像 发表于 05-17 00:05 1086次阅读

    MediaTek与Unity中国签署合作备忘录

    MediaTek 在上海国际汽车工业展览会上与 Unity 中国正式签署合作备忘录。本次深度合作将基于 MediaTek 和 Unity 中国各自的软硬件优势,携手开启全新的技术探索,双方将在
    的头像 发表于 04-30 14:58 1062次阅读

    菜单的使用:Menu是菜单接口,一般用于鼠标右键弹窗、点击弹窗等

    。使用bindContextMenu弹出的菜单项是在独立子窗口内的,可显示在应用窗口外部。 @Builder开发菜单内的内容与上文写法相同。 确认菜单的弹出方式,使用bindContextMenu属性绑定组件。示例
    发表于 04-30 07:14