纳金网

标题: 第一人称射击游戏(中级教程)(一) [打印本页]

作者: 会飞的鱼    时间: 2011-12-13 14:14
标题: 第一人称射击游戏(中级教程)(一)


手册第二部分的翻译,效果比第一部分更复杂些,增加了敌人元素。脚本更复杂,但其实这些教程提供的脚本通用性很强,可以说是简单易用。
第二部分:进阶



这部分是中级教程,介绍游戏中类似多武器切换、毁伤和敌人等。

前提条件

这部分教程假设你已经熟悉Unity基本操作和基本的脚本概念。同时,你对第一部分的内容也已经熟知。

关卡设置

下载Fps_Tutorial.zip,解压,Unity中打开工程文件夹。如果你已经完成了第一部分教程那么把文件解压到新的文件夹下面。

导入标准资源包

把mainLevelMesh和FPS controller预制增加到场景中
注意:这部分教程中无需创建新脚本。我们使用下载的那些脚本。
武器切换

在涉及如何创建个别武器之前,我们需要写一些代码来控制武器如何出现和如何切换。我们来看看脚本PlayerWeapons的内容:
function Awake()

{

// Select the first weapon

SelectWeapon(0);

}
这段程序初始化0号武器作为默认武器。
function Update()

{

// Did the user press fire?

if (Input.GetButton ("Fire1"))

BroadcastMessage("Fire");

if (Input.GetKeyDown("1"))

{

SelectWeapon(0);

}

else if (Input.GetKeyDown("2"))

{

SelectWeapon(1);

}

}
这段程序检测键盘输入:开火键、数字“1”代表1号武器、数字“2”代表2号武器。武器都要设为主摄像机的子物体。
function SelectWeapon(index : int)

{

for (var i=0;i<transform.childCount;i++)

{

// Activate the selected weapon

if (i == index)

transform.GetChild(i).gameObject.SetActiveRecursively(true);

// Deactivate all other weapons

else

transform.GetChild(i).gameObject.SetActiveRecursively(false);

}

}
这段是根据键盘输入激活相应的武器。

下面来使用上面那些代码:

创建一个空游戏物体(empty game object),命名为“武器”,把它拖放到主摄像机下设为主摄像机的子物体(FPS controller中的摄像机)。我们的武器都将设为这个空物体的子物体。

把脚本PlayerWeapons赋予摄像机下的游戏物体“武器”。
作者: 晃晃    时间: 2012-1-29 23:25
一帆风顺,二龙腾飞,三羊开泰,四季平安,五福临门,六六大顺,七星高照,八方来财,九九同心,十全十美。

作者: C.R.CAN    时间: 2012-2-15 23:32
沙发不解释

作者: 菜刀吻电线    时间: 2012-3-2 23:21
俺是新人,这厢有礼了!

作者: 菜刀吻电线    时间: 2012-3-27 23:30
提醒猪猪,千万不能让你看见

作者: 晃晃    时间: 2012-4-17 23:19
我也来支持下

作者: C.R.CAN    时间: 2012-5-29 23:24
呵呵,真得不错哦!!

作者: 晃晃    时间: 2012-6-28 23:28
你们都躲开,我来顶

作者: C.R.CAN    时间: 2012-8-24 23:25
很有心,部分已收录自用,谢谢

作者: 奇    时间: 2012-8-25 23:56
凡系斑竹滴话要听;凡系朋友滴帖要顶





欢迎光临 纳金网 (http://rs.narkii.com/club/) Powered by Discuz! X2.5