如何创建Unity里的动态造型 ?

在此教程中如何创建一个自定义的角色菜单,以及如何在游戏中为此保存必须的数据

第1个回答  2014-05-09

在此教程中我将展示如何创建一个自定义的角色菜单,以及如何在游戏中为此保存必须的数据。我们将创建一个玩家造型,通过添加额外附属或者改变颜色来自定义,保存数据,加载其他关卡以及利用保存数据重新创建。这样就能高效的让你在游戏世界外部-在一个菜单系统中自定义它,你可以在任何地方访问,即使退出或者重启游戏都可以。

建立项目

创建一个新的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);

    }

}

复制代码


如果你还有什么不懂的,可以百度搜下:编程回忆录,他们现在正在录制这方面的教程,都是零基础开始,由浅入深。

相似回答