【GAD翻译馆】VR100天教程:第九天设置武器
译者:刘鸿(lewis2012) 审校:王玥亭(玥亭)
欢迎回到第9天!
你想知道为什么今天帖子和上次的帖子之间有很大的差距吗?那是因为我参加了西雅图AR /VR hackaton #6!
Hackathon有3天,我花了2天时间才从中恢复过来!了解postmortem !
随着hackathon的结束,我又回到了这里,继续我们更新帖子!耶!
继续我们上次讲到的,
接下来要做的是将武器附加到我们的角色,然后添加用于拍摄的游戏逻辑。
像往常一样,让我们开始吧!
添加我们的武器
在我们目前的状态下,我们只有我们的角色:
我们需要添加一个武器,从我的研究中,在大多数游戏中,当玩家射击时,子弹实际上并不是来自枪,它来自相机的中心视图。
不仅如此,我们实际上并不发射出任何子弹,因为它的计算代价可能会变得昂贵。相反,我们只是射击Raycast,如果我们射击目标,我们做一些枪动画效果,使得子弹看起来来自于枪。
对于像火箭发射器这样较大的武器,我们必须创造子弹,但是对于快速的射击武器,如攻击步枪或手枪,我们可以使用Raycast。
创造我们的武器
我们做的第一件事是创造我们的“枪”。我敢肯定,我们可以从Unity的游戏商店(game store)找到枪支资产,先创建一个代表我们武器的简单立方体。我确定以后,我们可以附加枪支资产,很可能一切都会好的。
首先,我们创建一个立方体,并使其成为我们的主相机的子对象。我要命名 Gun。我将参数转换为下面这些值:
Position: (0.25, -0.5, 1)
Scale: (0.25, 0.25, 1)
确保禁用/删除 与立方体一起创建的 Box Collider。如果我们有它,我们的玩家对象将与枪发生冲突,造成意想不到的后果。
此外,我们应该有这样的东西:
如果我们看一下我们的游戏标签,我们应该看到这样的东西:
接下来,我们可以添加一些粒子效应或者类似的东西来产生我们发射的错觉。
我不会说谎,说我完全知道我正在做什么(不,我不知道),但是现在我要创建一个简单的粒子系统并把它附在枪头。
我的意图是,当我们开火时,我将播放粒子效果,当我们停止开火时候停止粒子效果它。
所以我们需要做的第一件事就是创建一个新的 粒子系统 ,使其成为Gun的子对象 。
我做了一些配置设置,如将Z 位置更改 为 0.2
其余的配置如下:
Duration: 1
Looping: unchecked
Start Lifetime: 0.05
Start Speed: 5
Start Size: 1
Start Color: Yellow
Play Awake: unchecked
这是它的外观和一些设置。看起来并不是太好,但我确信如果我们有材质资产,我们可以做得更好。
添加射击脚本
接下来,我创建了拍摄脚本并将其附加到我们的 主摄像头。 该脚本将被称为 PlayerShootingController。
以下是一个简单的射击脚本:
这段代码中没有什么特别复杂。我们刚刚从我们的鼠标所在的地方创建了一条射线,然后如果我们击中什么东西,我们就会打印出我们所命中的,并播放我们的粒子系统。
我们想要做的事情,为raycast创建一个图层与Shootable层相碰撞,但这是明天的事情了。
第九天结束。
这就是今天的教程!这么短么?是的,我知道,好吗?
总结我们今天所取得的成就:我们创造了我们的射击系统的开端。
我们为主摄像机添加了一个假的枪作为它的子对象,以便每当我们移动鼠标时,枪将停留在我们的相机前面。
然后我们添加了一个粒子系统,每当我们开火时会产生粒子。
在未来,我想回顾一下,如何使粒子看起来更加真实:可能通过使用更好的粒子系统材质,但是当我们到达那里时,我们会知道的。
最后,我们创建了一个脚本,将raycasts射击到我们的鼠标指向屏幕的位置。我们应该让它成为中心,但这是我们明天能解决的问题。
嗯,这是一个漫长的一天,我们明天再见!
访问 VR挑战100天的内容表
【版权声明】
已经询问原文作者,并获取原文作者翻译许可,译文获得授权。
联系原文作者JoshChang