在此教程中我将展示如何创建一个自定义的角色菜单,以及如何在游戏中为此保存必须的数据。我们将创建一个玩家造型,通过添加额外附属或者改变颜色来自定义,保存数据,加载其他关卡以及利用保存数据重新创建。这样就能高效的让你在游戏世界外部-在一个菜单系统中自定义它,你可以在任何地方访问,即使退出或者重启游戏都可以。
建立项目
创建一个新的Unity项目,我们此处需要两个关卡,这样就可以互相切换了。将当前场景保存并命名为levelMenu。之后打开构建设置并点击添加当前场景。这是必须的,这样后面就可以直接加载并访问它了。
之后创建一个新的场景并命名为levelGame,同样添加到构建设置中。现在需要显示基本的场景,允许我们来填充东西。
创建飞机
我们暂时使用飞机来作为角色。获取三维素材并将它们拷贝到你的素材文件夹。创建一个立方体,并为平面网格画上网。创建一个新的材料并添加到飞机。最后将飞机拖拽到项目文件夹里来制作一个prefab。
自定义原型界面
为了自定义平面平面,我们需要一些类型的界面。创建一个新的脚本并命名为plane.js。将下面代码嵌入其中。
function OnGUI()
{
if(Application.loadedLevel == 0)
{
if(GUI.Button(Rect(10, 10, 100, 50), "Red"))
{
renderer.material.color = Color.red;
}
if(GUI.Button(Rect(10, 70, 100, 50), "Blue"))
{
renderer.material.color = Color.blue;
}
if(GUI.Button(Rect(10, 130, 100, 50), "Green"))
{
renderer.material.color = Color.green;
}
}
}
复制代码
在飞机-prefab里添加脚本,将飞机放到场景中。将照相机移向飞机,这样我们就可以看到对它操作发生的改变了。当运行时候,如下图:
点击按钮的话,飞机颜色会发生改变的加载下一个关卡
在levelGame中,放置另一个飞机,将照相机转向它。尝试后会发现,什么都没发生,因为我们根本没有添加对于保存数据的提取。既然到现在了,那就让这个场景跟levelMenu不同吧,这样来显示两个部分都是简单的。在主照相机里定义一个不同的背景色就够了。
现在来到levelMenu关卡,任何都要从此坐骑。打开飞机脚本,在按钮下面添加如下代码:
function OnGUI()
{
if(GUI.Button(Rect(120, 10, 100, 50), "Load Level"))
{
Application.LoadLevel(1);
}
}
复制代码
如果你还有什么不懂的,可以百度搜下:编程回忆录,他们现在正在录制这方面的教程,都是零基础开始,由浅入深。