统一 教程

统一 开奖结果3d技术:构建开奖结果3d弹球游戏

在本教程中,您将学习如何使用Unity的开奖结果3d技术通过排序组,网格编辑器等来构建老式的弹球游戏。

4.9/5 7个评分

  • C#7.3,Unity 2019.3,Unity
更新说明:Ben MacKinnon为Unity 2019.3。更新了本教程。新井写了原作。

在本Unity 开奖结果3d技术教程中,您将学习在Unity中构建开奖结果3d游戏的高级技巧。学习如何在构建史诗般的老式弹球游戏(称为“ 突击!

如果您认为本教程太高级了,请在Unity 开奖结果3d游戏中通过入门学习 如何在Unity 开奖结果3d中制作类似于Jetpack Joyride的游戏 教程第一。完成后,请返回并进一步提高开奖结果3d 统一 技能。

本教程中的脚本编写很少,但是如果您具有C#编程的基本知识,则将更容易理解。要提高您的技能,请查看我们的 统一 脚本介绍 教程。

注意 :本教程假设您熟悉使用Unity,并且了解使用Unity UI的方式。如果您不是,请花些时间阅读我们的 统一 UI简介 教程第一。

在完成本教程时,您将进一步了解:

  • 排序组
  • 雪碧面具
  • 9片精灵
  • 开奖结果3d对撞机和关节
  • 网格编辑器
  • 效应器和开奖结果3d物理材料的类型

是时候让(别针)球滚动了!

入门

首先,通过点击 下载资料 本教程顶部或底部的按钮。

确保您使用的是Unity版本 2019.3,您可以通过下载 统一 Hub.

解压缩材料并在Unity中打开starter项目。项目启动后,切换到 现场 查看并确保您正在使用 开奖结果3d 模式。

哪里可以找到开奖结果3d模式

探索入门项目

首先浏览该项目。

双击 弹球向导 场景中 资产/ RW /场景。在层次结构中,您可以看到GameObjects分为以下类别:

  • 声音对象
  • 主相机
  • 热点地区
  • 静态对撞机
  • 静态面板
  • 动画制作

请点击 并查看弹球桌的当前状态。

未分类的弹球层

好吧,事情肯定很有趣!但是图像目前正在互相争斗以在屏幕上渲染。

您的第一个任务是调整最后三个组的“排序层”,以便它们以正确的顺序呈现。

调整排序层

A 排序组 是用于创建合并的一组组件 排序层。即,预制件的多个实例在不同的分类层上具有多个对象。

排序层 在此项目中应按以下顺序进行:

  • 面板(最低层)
  • 效果器
  • 商标
  • 障碍物
  • 最佳
  • 覆盖(最高层)

现在,如下调整您的排序层:

  1. 静态对撞机:这些具有碰撞器的对象构成弹球台的基本碰撞结构。此处不需要排序组。

    弹球台的静态对撞机。

  2. 静态面板:此组中的内容被隐藏。

    要显示该组,请选择 静态面板 在层次结构中。然后,点击 添加组件 然后选择 渲染▸排序组。在新添加的排序组组件中,找到 排序层 下拉菜单并选择 面板 .

    编辑排序层。

  3. 动画制作 : 选择 动画制作 在层次结构中,然后单击 添加组件。然后,选择 渲染▸排序组.

    在里面 排序层 下拉菜单,选择 效果器 然后点击 .

    带有适当动画层的弹球游戏

您会发现弹球游戏的大部分细节已经在入门项目中。现在该玩些有趣的东西了:添加动作!

滚球

首先,您需要创建一个空白 游戏对象 来保存您的工作。

通过右键单击“层次结构”中的空白并选择 创建空. Now, 名称 the new object 互动零件.

在检查器中,重置其 转变 通过单击 设定值 图标并选择 重启 .

接下来,再创建七个空的GameObject作为其子级 互动零件 和 名称 them:

  • 滚动树
  • 公告牌
  • 柱塞
  • 脚蹼
  • 浮子面积
  • 公路隧道区
  • 颠簸的零件

确保重设所有 转变 值。

新游戏对象

注意 :通过选择 互动零件 游戏对象并按 Alt键 键 -Shift-N 创建一个子GameObject。然后使用 控制/ 命令 -D 复制六次!然后剩下的就是重命名每个GameObject。

滚动树

接下来,您将使用 雪碧面具 只显示动画的一部分。看起来像这样:

 统一  2017 开奖结果3d技术

方法如下:

  1. 资产/ RW /精灵 ,拖曳 trees_circle滚动树 在里面 层次结构 和 名称 the sprite 在 stance 树圈.
  2. 在里面 检验员,将 转换位置(X:-0.7,Y:2.2,Z:0) 并将其旋转设置为 (X:0 Y:0 Z:17).
  3. 右键点击 滚动树 在层次结构中,选择 开奖结果3d对象▸精灵蒙版 和 名称 it 树面具 .
  4. 设置 转换位置(X:-1.91,Y:2.58,Z:0) 并将“比例”设置为 (X:1.48,Y:1.58,Z:1).
  5. 在检查器中,转到 雪碧 的领域 雪碧面具 组件,点击 图标以启动Sprite资产列表,然后选择 trees_mask.
  6. 选择 树圈 在层次结构中。使用检查器,找到 精灵渲染器 然后选择 效果器 来自 排序层 落下。来自 遮罩互动 下拉菜单,选择 可见内罩.

编辑Sprite Renderer。

编写动画脚本

放置好图形后,就该添加控制动画的脚本了。

连按两下 资产/ RW /脚本/ AnimateController 在代码编辑器中打开它。

在现有变量下面添加以下变量:

public 游戏对象 treeObject;
private float turnSpeed = 30f;

的 n add the following 固定更新:

private void 固定更新()
{
    if (treeObject != null)
    {
        treeObject.transform.Rotate(new Vector3(0f, 0f, turnSpeed * Time.fixedDeltaTime));
    }
}

This rotates the sprite assigned 至 the treeObject variable at a consistent speed, regardless of whether the player’s frame rate is 30 FPS, 60 FPS, or fluctuates 在 between. turnSpeed allows you 至 tweak how fast the trees rotate.

注意 :您可以了解更多有关 固定更新 在官方的Unity文档中。

请点击 保存 然后返回Unity。

选择 滚动树 在层次结构中,单击 添加组件 然后选择 脚本▸动画控制器。然后拖动 树圈 从检查员到 树对象 领域。

请点击 预览您的新动画。

在弹球桌上移动的树。

添加广告牌

如果您无法超越自己的最后得分,那就没有理由打弹球了!为了帮助您做到这一点,您接下来将添加一个动画广告牌,其中包括闪烁的灯光。

打开 资产/ RW /雪碧/ ani_billboard 并拖动 aniBillbord0001 进入 公告牌 在层次结构中。命名子实例 AniBillboard.

在里面 排序层 下拉菜单,选择 最佳 。 请点击 添加组件 然后选择 其他▸动画师.

在检查器中,打开 控制者 现场 动画师 然后点击 图标旁边的图标以启动动画控制器列表。选择 ani_Billboard.

打开 动画 来自的窗口 菜单▸窗口 然后点击 预览广告牌的外观。

动画广告牌

9片精灵 是另一种有用的开奖结果3d技术。调整大小时,此功能保留图形元素的角和边界。

资产/ RW /雪碧/ ani_billboard 并选择一个精灵。在检查器中,单击 精灵编辑器 图标以编辑精灵的可拉伸部分。

用于此动画的精灵带有9片精灵,因此现在调整大小将不再是问题。 !

这是在广告牌上使用9片切片的效果:

9片示例

放置广告牌

现在,您需要将广告牌放置在弹球机上。

AniBillboard 在层次结构中,设置其 转变 位置的值 (X:1.5,Y:4.3,Z:0) 并将其比例更改为 (X:-3.5,Y:2,Z:1).

怀疑的脸

嗯...有点大,不是吗?要解决此问题,请设置 绘画模式精灵渲染器 平铺 和大小 宽度:1高度:1 。 在里面 平铺模式 下拉菜单,选择 适应性强 .

笑脸。

好多了!

加分

通过将分数添加到您的广告牌 资产/ RW /预制件,拖曳 scoreText 进入 广告牌 在层次结构中并将其比例更改为 (X:0.41,Y:0.4,Z:1).

请点击 预览其时髦的新动画广告牌上的弹球游戏!

 统一  2017 开奖结果3d技术

加平!

设置好“ bling”后,就该将“ ping”添加到运动场了!换句话说,您需要添加使游戏有趣的对撞机。

没有足够对撞机的弹球游戏

首先进入层次结构并移动 保险杠坡道曲线斜坡静态对撞机 进入 互动零件.

添加柱塞

弹弹球的第一件事是 柱塞 这样您就可以从桶中射出一个球并开始游戏!

在现实世界中,玩家会向后拉柱塞,该柱塞与弹簧线圈啮合。释放后,弹簧线圈将球推入运动场。您想要在应用程序中拥有相同的感觉。

要实施这些机制,请选择 柱塞 在层次结构中。在检查器中,添加一个 渲染▸Sprite渲染器 零件。

选择 精灵渲染器 组件,单击 旁边的图标 雪碧 字段并分配 凸轮 资产。组 排序层 最佳 并将位置转换为 (X:2.66,Y:-4.6,Z:0).

指出要素

现在,考虑一下柱塞的物理原理。这是一个有两个要素在起作用的春天:

  • 锚点:锚固关节的活动部分,这会增加张力。
  • 弹簧接头:关节的运动部分,产生力。

接下来,您将需要执行物理操作,以使柱塞表现出预期的效果。

添加锚点

资产/ RW /预制件 并拖动 柱塞锚 进入 柱塞 在层次结构中创建一个子实例。在检查器中,添加 物理开奖结果3d▸刚体开奖结果3d 并设置它 体型运动学 固定其位置。

选择运动学选项

添加弹簧接头

现在,您已经创建了锚点,是时候创建弹簧接头了。这就像拉回并启动柱塞的弹簧一样。

为此,请点击 箭头 在旁边签名 柱塞锚 在里面 层次结构 以显示其嵌套内容。选择 柱塞弹簧接头 并添加一个 弹簧接头开奖结果3d 通过检查器。

选择弹簧接头开奖结果3d

确保选择开奖结果3d弹簧关节选项!

注意 :所有开奖结果3d关节组件均带有强制性的刚体开奖结果3d。

错误消息:无法删除Rigidbody 开奖结果3d

刚体开奖结果3d ,设定 体型 动态 弥撒 2.

展开 约束条件 部分并启用 冻结位置 对于 X冻结旋转 对于 Z.

编辑质量和约束

弹簧接头开奖结果3d ,检查 启用碰撞。禁用 自动配置距离 。 组 距离 1频率10.

连接锚(X:0,Y:-1) 并分配 柱塞锚 作为组件的 刚性连接体.

编辑Spring Joint 开奖结果3d。

在层次结构中,拖动 资产/ RW /预制件/柱塞效果 进入 柱塞 目的。这将创建一个子对象实例。

添加柱塞脚本

最后,是时候控制您添加到柱塞和弹簧接头中的物理场了。

在检查器中, 柱塞弹簧接头 仍然选择,请单击 添加组件 然后选择 脚本▸启动器。双击以在代码编辑器中启动它。

在现有变量下面声明以下变量:

private SpringJoint开奖结果3d springJoint;
private 刚体开奖结果3d rb;
private float  对于 ce = 0f;          // current  对于 ce generated
public float maxForce = 90f;

的 n, at the end of Start, add the following:

springJoint = GetComponent<SpringJoint开奖结果3d>();
springJoint.distance = 1f; 
rb = GetComponent<Rigidbody开奖结果3d>();

After // #1Update, add the following line:

// calculates current  对于 ce of exertion
force = powerIndex * maxForce;

Finally, add the following 固定更新 at the end 的 class:

private void 固定更新()
{
    // When  对于 ce is not 0
    if (force != 0)
    {
        // release springJoint  和  power up
        springJoint.distance = 1f;
        rb.AddForce(Vector3.up *  对于 ce);
         对于 ce = 0;
    }

    // When the  柱塞  is held down
    if (pressTime != 0)
    {
        // retract the springJoint distance  和  reduce the power
        springJoint.distance = 0.8f;
        rb.AddForce(Vector3.down * 400);
    }
}

保存 文件,然后返回Unity。

分配 柱塞EfxZoom柱塞灯 来自 柱塞效应 实例到组件的字段。组 最大力量 200.

编辑柱塞

测试你的工作

现在,您可以测试新上班的弹子球柱塞了。

拖一个 资产/ RW /预制件/球 进入层次结构以创建实例。设置其 转换位置(X:2.84,Y:-1.08,Z:0) 。 请点击 然后按下并释放空格键来测试您的柱塞。

带有工作柱塞的弹球游戏

现在,您滚动了!

添加脚蹼

现在,球从枪管射出,进入比赛区,然后从底部掉落并进入太空。

补充时间 脚蹼 -弹球胜利的主要武器!您将从左侧的鳍状肢开始。

在层次结构中,右键单击 脚蹼 然后选择 创建空。重命名游戏对象 左铰链。在检查器中,设置 转换位置(X:-1.26,Y:-3.8,Z:0) 规模 (X:1.05,Y:1.05,Z:1).

对于右脚蹼,复制左脚蹼并将其重命名 右铰链。将其位置设置为 (X:0.46,Y:-3.8,Z:0).

再次考虑一下鳍状肢将如何工作。就像柱塞一样,只是这一次您需要使用以下组件旋转挡板:

  • 铰链接头:将可移动部件固定在其旋转点。
  • 脚蹼 :可移动的鳍状部件。

接下来,前往 资产/ RW /预制件 并拖动 鳍状肢左 预制成 左铰链鳍状肢右 预制成 右铰链.

铰链连接元件的位置

铰链接头

选择 左铰链 在层次结构中。转到检查器并添加一个 铰链开奖结果3d。设置刚体的 体型运动学。这使该关节成为鳍状板的固定旋转点。

铰链开奖结果3d,分配 鳍状肢左 作为其实例 刚性连接体.

启用 使用限制,然后设定 角度限制-30 对于 降低 30 对于 .

编辑铰链关节开奖结果3d

突击测验!由于“左铰链”的旋转极限在-30至30度之间,您认为“右铰链”的旋转极限应该是什么?

[剧透标题=“右脚踏板的步骤”]
创建一个新的 铰链开奖结果3d 组件 右铰链。设置其刚体开奖结果3d 体型运动学.

角度限制 正确的铰链连接是 较低:30 鞋面:-30.

记住要分配 鳍状肢右 作为其实例 刚性连接体.

设置正确的鳍状肢
[/扰流板]

向翻转添加脚本

现在,添加脚本以使脚蹼正常工作。

打开 FlipControlLeft.cs资产/ RW /脚本.

在现有变量下面声明以下变量:

public float speed = 0f;
private HingeJoint开奖结果3d hingeJoint开奖结果3d;
private JointMotor开奖结果3d jointMotor;

Grab your references 在 Start by adding:

hingeJoint开奖结果3d = GetComponent<HingeJoint开奖结果3d>();
jointMotor = hingeJoint开奖结果3d.motor;

的 n, 在里面 if statement 在 固定更新, add the code 至 engage the joint’s motor:

// set motor speed  至  max
jointMotor.motorSpeed = speed;
hingeJoint开奖结果3d.motor = jointMotor;

Finally, add an else statement 至 the same block:

else
{
    // snap the motor back again
    jointMotor.motorSpeed = -speed;
    hingeJoint开奖结果3d.motor = jointMotor;
}

尝试为右鳍重复上述代码:

  1. 声明必需的变量以访问对象的 HingeJoint开奖结果3dJointMotor开奖结果3d 组件。
  2. 创建一个变量,该变量存储电动机的速度值。
  3. Listen 对于 user 在 teraction 在 固定更新 和 trigger its motor speed.

[spoiler title=”Code Update 对于 FlipControlRight“]
唯一的区别是,您翻转了速度变量,因为您以另一种方式旋转了挡板。

FlipControlRight.cs,声明相同的变量:

public float speed = 0f;
private HingeJoint开奖结果3d hingeJoint开奖结果3d;
private JointMotor开奖结果3d jointMotor;

Store your references 在 Start again:

hingeJoint开奖结果3d = GetComponent<HingeJoint开奖结果3d>();
jointMotor = hingeJoint开奖结果3d.motor;

的 n, 在里面 if statement 在 固定更新, add:

// set motor speed  至  max
jointMotor.motorSpeed = -speed;
hingeJoint开奖结果3d.motor = jointMotor;

Finally, add the following else statement 至 that same block:

else
{
    // snap the motor back again
    jointMotor.motorSpeed = speed;
    hingeJoint开奖结果3d.motor = jointMotor;
}

[/扰流板]

保存 文件,然后返回Unity。

附加脚本组件 FlipControlLeft左铰链FlipControlRight右铰链。设置他们的 速度 1700.

设定速度值

请点击 并使用向左和向右箭头键尝试使用脚蹼。

带有功能脚蹼的弹球游戏

公路隧道区

运动场顶部的弯曲轨道增加了球进入球洞的机会。 曲线斜坡 以获得更多积分-如果您能够接球!

在此步骤中,您将在入口处创建一个涡流,将球吸进隧道,并在另一端吐出。呜!

带有开奖结果3d区域效应器的力场

设置球实例的 转换位置(X:-2.28,Y:1,Z:0)。在层次结构中,右键单击 公路隧道区 然后选择 创建空。命名这个对象 力场.

请点击 添加组件 然后选择 物理开奖结果3d▸多边形对撞机开奖结果3d.

在检查器中,单击 编辑对撞机 图标,然后将向量移动到隧道入口以外的区域。启用 是触发由效应器使用.

调整Polygon Collider 开奖结果3d的尺寸。

请点击 添加组件 然后选择 物理开奖结果3d▸区域效应器开奖结果3d 。 启用 使用全局角度。然后设定 力角90力大小20 。 在里面 强制目标 下拉菜单,选择 刚体.

击中 并测试您的新涡旋。

测试涡流。

注意 :增加 力大小200 也将球传过隧道。但是你不会用 表面效应器开奖结果3d,因此,出于本教程的考虑,请将其设为弱漩涡。

带表面效应器开奖结果3d的引导路径

“弱”涡旋仅具有将球推到隧道入口的力量。接下来,您将创建一条路径来引导球穿过隧道的其余部分。

  1. 右键点击 公路隧道区 在层次结构中,然后选择 创建空。命名这个新对象 路面.
  2. 在检查器中,单击 添加组件 然后选择 物理开奖结果3d▸边缘对撞机开奖结果3d.
  3. 点击 编辑对撞机 图标,并相应地移动向量。
  4. 启用 由效应器使用 并增加 边缘半径0.03.

调整Edge Collider 开奖结果3d。

接下来,点击 添加组件 然后选择 物理开奖结果3d▸表面效应器开奖结果3d 。 组 力速15力标尺1 。 请点击 .

弹球的弹球游戏

等一下,那个球在做什么?您将在下一节中修复行为。

统一 中的网格编辑

此时,当预览工作时,您会看到球的动作很奇怪。

转到层次结构,选择 静态碰撞器/墙板 并启用 精灵渲染器 在检查器中。在这里,您会找到罪魁祸首-一些矢量正在阻挡隧道的入口。

要解决此问题,请转到 多边形对撞机开奖结果3d,点击 编辑对撞机 图标,并将令人讨厌的向量移开。差距不要太大。

调整Polygon Collider 开奖结果3d

注意 :为了更快地编辑网格:
  • 保持 Alt键 键 然后单击鼠标左键将光标更改为“手形”图标以移动画布。
  • 命令 (Mac)或 控制 (Windows)突出显示顶点,然后单击鼠标左键删除。

请点击 再次。好了,一切顺利!

球正确进入隧道

使用Platform Effector 开奖结果3d进行阻止

现在,ForceField将球推到路面上,然后将球沿着隧道引导并直接回到射手,然后……

哇...?它直接从滑道下降到柱塞。

弹球回到柱塞的弹球游戏

那不是很正确。

您需要一个对撞机以防止球落回 柱塞 。但同时,您需要允许球在发射后从射手中退出。

Back 在里面 old days, you might have if-else‘d” your way out of it. But now, 平台效应器开奖结果3d 来这里拯救世界!

右键点击 公路隧道区 在层次结构中,选择 创建空 和 名称 the new object 块平台.

在检查器中,单击 添加组件 然后选择 物理开奖结果3d▸边缘对撞机开奖结果3d 。 然后 编辑对撞机 移动将阻塞出口的向量。启用 由效应器使用 并设置 边缘半径0.03.

堵塞柱塞滑槽

接下来,点击 添加组件 然后选择 物理开奖结果3d▸平台效应器开奖结果3d。禁用 使用对撞面膜。然后,设定 旋转偏移90 和的价值 表面弧130 。 启用 使用一种方式.

请点击 …您已经解决了问题!

球现在被阻止进入柱塞滑槽

浮子面积

玩家可以得分更高的另一个最佳位置是在浮动区域。

要实现它:

  1. 设置 转换位置 实例到 (X:-2.2,Y:-0.5,Z:0).
  2. 资产/ RW /精灵 并拖动 浮子 进入 浮子面积 层次结构中的对象。
  3. 命名子实例 浮动面积.
  4. 在检查器中,设置 转换位置(X:-2.63,Y:0.18,Z:0) 然后选择 商标 就像它一样 排序层.
  5. 请点击 添加组件 然后选择 物理开奖结果3d▸多边形对撞机开奖结果3d 。 启用 是触发由效应器使用.
  6. 从中添加另一个组件 物理开奖结果3d▸浮力效应器开奖结果3d 。 组 密度 50 。 下 减震 ,设定 线性阻力角拖10.
  7. 流量变化-5 使浮动效果有些移动。

调整浮力效应器开奖结果3d

请点击 检查浮动效果。

漂浮区域的球

编码浮动

现在,您将设置浮动持续时间。在 资产/ RW /脚本,双击 Floatpiece.cs 在代码编辑器中启动文件。

在现有变量下面声明以下变量:

private 浮力效果器开奖结果3d floatEffector;
public float floatingTime = 0f; // floating duration
private float runningTime = 0f; // the current duration since startTime
private float startTime = 0f;

At the end of Start, add:

floatEffector = GetComponent<BuoyancyEffector开奖结果3d>(); // assign component  至  this  在 stance

Replace the code 在 side the if block 在 OnTriggerEnter开奖结果3d with the following:

// on enter zone, start float
floatEffector.density = 50;
// start timer
if (startTime == 0f)
{
    startTime = Time.time;
    sound.bonus.Play();
    scoreBoard.gamescore += 10;
    golightRenderer.sprite = golightAniController.spriteSet[0];
    StartCoroutine(BeginFloat());
}

And replace the entire BeginFloat method with the following:

IEnumerator BeginFloat()
{
    while (true) 
    {
        // calculate current duration
        runningTime = Time.time - startTime; 

        // play animation loop
         在 t  指数  = (int)Mathf.PingPong(handcamAniController.fps * 
                    Time.time, handcamAniController.spriteSet.Length);
        handcamRenderer.sprite = handcamAniController.spriteSet[index];
        yield return new WaitForSeconds(0.1f);
        
        // when time is up            
        if (runningTime >= floatingTime)  
        {
            // stop float  和  reset timer
            floatEffector.density = 0;    
            runningTime = 0f;
            startTime = 0f;
  
            // stop sound & animation 
            sound.bonus.Stop();
            golightRenderer.sprite = golightAniController.spriteSet[1];
            handcamRenderer.sprite = handcamAniController.spriteSet 
                          [handcamAniController.spriteSet.Length - 1];
            break;
        }
    } 
}

请点击 保存 然后返回Unity。

这是整个教程中需要编写的最多代码!其中很多是调用已经为您定义的东西。

首先,您声明了一些变量, 浮力效果器开奖结果3d 您在场景中添加的组件和一些计时器。

You’ll call OnTriggerEnter when the 球 enters the 浮动面积. You start the timer, start some sound 和一个 nimation effects 和一个 ward the player some points. 的 n you start the BeginFloat coroutine.

BeginFloat, you keep track of how long the 球 has been 在里面 浮动面积 并运行一些精灵动画。

When the time is up, you reset all the timers, stop all animations 和 sound effects 和 reduce the 浮力效果器开奖结果3d.density0。这会导致球掉出 浮动面积 然后重新播放!

实施浮动区域

资产/ RW /预制件 并拖动 floatEffects 进入 浮子面积 层次结构中的对象创建子实例。点击 箭头 旁边的图标 floatEffects 扩展内容。

选择 浮动面积 在层次结构中。请点击 添加组件 然后选择 脚本▸浮子 。在检查器中,分配 floatEffects手持摄像头静态光Golight Obj。设置 浮动时间 重视 2.

编辑浮体。

现在按 再次测试。

 统一  2017 开奖结果3d技术

三角形保险杠

弹球游戏几乎完成了!剩下的就是增强游戏性 点效应器 和一个 物理材料.

为此,您需要在游戏中添加保险杠。如果球碰到这些保险杠中的任何一个,它将朝相反的方向射击。

要创建这些保险杠,请转到 资产/ RW /预制件 并拖动 保险杠TriangleLeft 进入 颠簸的零件 在层次结构中。放置 保险杠前的实例。

请点击 看球如何从斜坡上滚下来。

带有不碰碰的三角碰碰球的弹球游戏

物理材料开奖结果3d与点效应器开奖结果3d

在Unity中,要在碰撞时为动画对象添加动量,您有两个选择:

  • 物理材料开奖结果3d:无论撞击点如何,整个物体表面的速度始终保持一致。

    使用开奖结果3d物理材料

  • 点效应器开奖结果3d:速度取决于物体的质心和撞击点。

    使用Point Effector 开奖结果3d。

随意使用两个选项。使用不同的设置进行实验,以找到游戏中不同碰撞元素的最佳效果。

选择 保险杠TriangleLeft 在层次结构中。找 多边形对撞机开奖结果3d 在检查器中并启用 是触发由效应器使用.

接下来,点击 添加组件 然后选择 物理开奖结果3d▸点效应器开奖结果3d 。 组 力大小500 并调整 减震 设置为 阻力:5000角阻力:1000.

编辑Point Effector 开奖结果3d。

现在,拖动 bumperTriangleRight资产/ RW /预制件 进入 颠簸的零件。将其设置与左保险杠完全相同。

然后将球实例的 转换位置(X:-1.6,Y:-1.6,Z:0) 。 请点击 测试您的新保险杠。

 统一  2017 开奖结果3d技术

看!球太快了,看不到它。

添加更多的保险杠

您可以尝试另外两种预制件,以探索更多的开奖结果3d物理引擎: 保险杠保险杠。要将它们添加到弹球游戏中,请将其拖入 颠簸的零件 在里面 希拉希 .

入门项目已经为您设置了这些。但是,您可以使用Point Effectors 开奖结果3d或Physics Material 开奖结果3d调整碰撞的影响。

最后,设定 实例到 (X:2.8,Y:-1,Z:0).

请点击 并享受弹奏和罢工!

完成弹球游戏

然后去哪儿?

通过单击下载最终项目文件 下载资料 本教程顶部或底部的按钮。

要扩展此游戏,您可以构建一个菜单系统并将玩家限制在只有三个球才能获得高分。或者您可以将其与 脸书 并设置高分表来挑战您的朋友。

希望本教程对您有所帮助。如果您有任何疑问或意见,或者您已使用Unity的开奖结果3d技术将其他一些炫酷效果融合在一起,请在下面的评论部分中告诉我们有关这些效果!

平均评分

4.9/5

为此内容添加评分

7个评分

更像这样

贡献者

评论