第1步:制作平面并将其放置在相机前
打开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文章
4958浏览量
87626 -
Unity
+关注
关注
1文章
127浏览量
21837
发布评论请先 登录
相关推荐
评论