今天将介绍最新的3D游戏开发套件。不论是使用2D还是3D游戏开发套件,都可以在不编写任何代码的情况下,通过设置与拖放便能快捷的实现游戏创意。

111208s3m6bama23p2fa2p.png
我们的玩家角色Ellen控制方式如下。

111427nrwpqqyqpyqrrp9j.png
111213b1r0r3q1mqzui1kp.png

  • 在Simple Translator 组件,勾选Activate。

 


111213n05t27faaz6332t2.png
点击Play,MovingPlatform 将向上移动,并在到达设定路径顶端时停下。

我们要让这个平台来回移动,首先选中MovingPlatfrom :

 

 

  • 查看检视窗口,找到Simple Translator 脚本。
  • 将Loop Type(循环模式)设为Ping Pong(乒乓球模式)。


111213qe8p851gueypy44p.png
点击Play,MovingPlatform 会向上移动到顶部再向下移动。它会移动到任意被设定为End Point的位置。

使用指令开门

在3D游戏开发套件中,游戏指令(Game Commands)能发送信号给Unity中的对象,让它们执行动作。

在这里我们将使用压力板(Pressure Pad)来打开一扇门。首先添加门对象到场景中:

 

 

  • 在项目窗口中,打开Prefabs > Interactables。
  • 找到DoorSmall 并拖入场景视图中。


111215wykkztb1zjdyuyo0.png
111215zms2um289nmuuqh2.png
111218rglq3nzvnnmwl3ll.png

 

  • 在层级窗口中,点击拖拽DoorSmall对象到PressurePad对象上Send on Trigger Enter 组件的Interactive Object(交互对象)属性栏中。


111218hj7jmmtjfu73j7jj.png
这时在场景视图中,会出现一个白色带箭头的线,显示PressurePad和DoorSmall之间的连接关系。

111221zjk9ku7uz77ri902.png

 

  • 将Detection Radius的数值设为3。


111221o6dfnn7pwp4li76n.png
现在要让Chomper只能看到前方的物体:

 

 

  • 拖动Detection Angle(探测角度)滑块,将数值设为180。


111221e7nivkqqnihqk48o.png
现在Chomper只能看到它前方的物体,能看到的距离也更短了。

111223trnreynth70hyukz.png

 

  • 在检视窗口中,点击Add Component,搜索NavMeshSurface。


111224s2bh3b2bb92bbx1o.png

 

  • 在脚本上点击键盘的回车键,添加组件到Plane对象上。
  • 找到NavMesh Surface组件,设置Agent Type(代理类型)为Chomper(这对所有敌人类型都适用)。
  • 设置Include Layers(包含图层 )为Nothing(无),选择Environment(环境),选择Vegetation(植被)。


111224c4pia84ccpnth870.png

 

  • 在NavMesh Surface 组件底部,点击Bake(烘焙)。


这时会在地面上出现一个浅蓝色表面,它指明场景中的敌人所能移动的位置。

点击Play,移动到Chomper面前,Chomper现在会追着你并进行攻击,左键点击并使用道具进行攻击。

111227rstnxtlrulcwdnnn.png

 

  • 查看检视窗口移至检视窗口底部,点击Add Component,搜索Box Collider。
  • 按下键盘上的回车键或是点击Box Collider组件将其添加到DestructibleBox对象上。
  • 在Box Collider组件上,勾选Is Trigger 属性。


111227h9rwuyi8ttykgrio.png

 

  • 点击Add Component,搜索Contact Damager(接触伤害源)。
  • 点击键盘上的回车键或是点击Contact Damager脚本将其作为组件加入对象。
  • 在Contact Damager组件上,将Amount(伤害量)设为3,要注意伤害量必须与Chomper的Max Hit Points数值相等,从而使Chomper受到足够的伤害。本例中我们设为3,请记得检查Chomper的Damageable 组件上的Max Hit Points。
  • 设定Damaged Layers (伤害图层)为Enemy。


111227arxafmvavxemba99.png
按下Play,箱子会落到Chomper上,Chomper会丢失生命值,然后转变为布娃娃(ragdoll)状态,而箱子则会弹开。

111229aiss6ys77ss66i86.png
按下Play箱子会砸到Chomper上,并在碰撞时破裂,让Chomper丢失所有生命值并转为布娃娃状态。

111232jugg06n609xsqbt7.png
点击GroundCover,将鼠标移到场景视图中的平面上,左键点击放置一些草被或睡莲。

111235r6kvxrbvdydo0bf5.png
这个过程和绘制VegetationSmall、VegetationMedium和VegetationLarge的过程一致。

111237w95e071mh7ope5ce.png

 

  • 点击Add Component,搜索Teleporter。
  • 按下回车键或是点击Teleporter脚本来将其添加到TeleportPlane对象上。


111237zklf5yi4tfbi5fvi.png

 

  • 在层级窗口选中TeleporterPlane 。
  • 将子对象Checkpoint对象拖入Teleporter 组件的Destination Transform属性栏。
  • 在层级窗口找到并展开Ellen,显示其子对象,找到RespawnParticles对象。


111238pkq42gllznn4k45q.png

 

  • 在层级窗口上选中GateWayHugeTeleporter 。
  • 将RespawnParticles 拖到Teleporter组件的Enter Effect(进入特效)属性栏中。
  • 将RespawnParticles 拖到Teleporter组件的Exit Effect (离开特效)属性栏中。
  • 按下Play并测试,让Ellen跑到传送器中。


111238fpwxx9bpldekeczu.jpg
在通过传送器时,Ellen会传送到最初的出生点,并会出现蓝色的粒子包围着她。

小结

在3D游戏开发套件中的多数对象会使用类似压力板功能的事件系统。我们可以探索Scenes > GamePlay 中的已有场景,了解对象在第一关和第二关是如何使用指令系统设置的。

今天的3D游戏开发套件指南入门篇就为大家介绍到这里,后续我们会分享相关套件的进阶开发篇,尽请期待,希望开发者能使用游戏开发套件尽情享受游戏设计的快乐!

更多精彩Unity教程尽在Unity官方中文论坛(Unitychina.cn)!

via:Unity官方平台


锐亚教育

锐亚教育,游戏开发论坛|游戏制作人|游戏策划|游戏开发|独立游戏|游戏产业|游戏研发|游戏运营| unity|unity3d|unity3d官网|unity3d 教程|金融帝国3|8k8k8k|mcafee8.5i|游戏蛮牛|蛮牛 unity|蛮牛