unity 3d 仿真_在Unity3D中构建3D仿真,第3部分

unity 3d 仿真

欢迎来到这个由三部分组成的关于Unity 3D的博客系列的最后一篇文章。 在本系列中,我们将在Unity3D中使用丰富的控件创建一个简单的3D游戏。 第一部分介绍了如何设置Unity3D ,第二部分介绍了如何 使用C#控制Unity3D

在本系列的最后一篇文章中,我们将深入研究如何使用Unity3D将代码实际制作成一个简单的游戏。

让我们开始吧

让我们建立一些关卡,进行更多类似游戏的动作和最终目标。

首先,让我们添加一些要坚持的世界墙。 为此,我们将添加一堆多维数据集,并使用以前的实践来将它们缩放和定位。

让我们转到Unity编辑器中的“场景视图”。 单击“层次结构视图”(未选择任何内容)并创建另一个空对象。 清除其变换(0,0,0)并将该对象命名为“世界”。

Unity3D.3.1

然后,我们要清除一些不再需要的旧对象。 让我们删除为测试添加的白色立方体和球体。

Unity3D.3.11

现在选择了“ World对象”,让我们添加一个多维数据集。 然后,将其位置和比例尺值更改为相等的位置0、2.5、0和比例尺10、5、1。这将使我们的墙长10个单位,高5个单位,宽1个单位。

Unity3D.3.12

现在,让我们的场景相机定位为具有自顶向下的视图。 单击“场景视图”右上角的绿色Y。

Unity3D.3.13

Unity3D.3.14

现在将墙旋转90度并将位置设置为-5、2.5、5。

Unity3D.3.15

然后让我们添加一堵墙的副本。 右键单击它,复制,然后将其X位置设置为5。

Unity3D.3.16

选择我们拥有的两堵墙,然后再次复制它们。 选中这两个选项后,让它们的Z位置值为15。

Unity3D.3.17

仍然选择它们,再次复制,并将它们移到Z位置25和X位置-10。

接下来,我们将使用一个新工具将它们一起旋转。 在右上角有一组5个按钮。 我们将选择中间按钮,然后将Y旋转设置为0。

Unity3D.3.18

Unity3D.3.19

然后,我们将选择Wall(4)将其比例尺X比例尺30设为更长。

Unity3D.3.20

然后选择Wall(2)并将其比例X也设置为30。

Unity3D.3.21

然后选择Wall和Wall(3),复制它们,并将复制品设置为X位置-15。

Unity3D.3.22

然后选择Wall(2),复制它,并将其X位置设置为-25。

Unity3D.3.23

现在,使我们的速度与本课程更加友好。

在“层次结构视图”中选择“ Player对象,然后在检查器编辑器中编辑值“前进速度”和“旋转速度”。 我喜欢5代表前进,50代表转向。

Unity3D.3.24

现在让我们为游戏添加一个目标。 让我们添加一个具有碰撞器的区域,该碰撞器在越过终点线时触发。

首先让我们添加完成区域。 我们将使用另一个多维数据集来设置边界。 在没有选择任何内容的层次结构视图中,通过右键单击3D对象->多维数据集添加多维数据集。 我们将其命名为Finish,将其位置设置为-10、2.5、15,并将其比例设置为5、5、5。

Unity3D.3.25

接下来,让我们给它新的材料。 在“资源”窗口中右键单击,然后单击创建->材质。 让我们将其Albedo设置为00B6006B,然后将其渲染模式更改为“透明”。 这使其绘制透明。

Unity3D.3.26

然后,我们需要编辑Finish Cube Collider ; 而不是添加到物理上,我们希望它禁用碰撞并仅触发。 为此,我们选择Finish对象,然后在Box Collider下的Inspector中,选中“ Is Trigger”。 这将使引擎触发OnTrigger方法。

Unity3D.3.27

然后让我们将脚本添加到Finish对象,以控制完成后会发生什么。 我们将其FinishController ,然后在MonoDevelop FinishController其打开。 然后,我们添加一个新函数,然后在输入对象时进行记录。

void OnTriggerEnter(Collider collider){
	Debug.Log( “Finished” );
}

Unity3D.3.28

现在按播放。 我们应该能够环游世界并找到Finish立方体。 进入多维数据集后,我们应该能够打开控制台窗口并看到消息“ Finished”。

Unity3D.3.29

Unity3D.3.30

现在,将其设置为在显示屏上显示一条消息以向用户显示,而不是仅记录该消息。 我们将说他们完成了游戏,然后添加了一个按钮以重新启动游戏。

首先,我们需要将一个Text对象添加到我们的世界中。 转到“层次结构视图”,单击鼠标右键,然后单击“ UI =>文本”。 这将为我们的场景添加三件事:一是应在摄像机视口中显示的文本对象,二是Canvas(即GUI后面的设置和层次结构),三是EventSystem ,该事件系统可以引发和捕获事件GUI就像拖放一样。

Unity3D.3.31

在“场景视图”中很难处理文本,因此让我们切换到“游戏视图”。

Unity3D.3.32

现在,我们应该可以在右下角看到“新文本”字段。 让我们在层次结构视图中选择Text对象。 在检查器中,我们可以编辑文本。 将其位置设置为0、0、0,将宽度设置为500,将高度设置为500。将“文本”设置为“ You Finished”,格式为粗体,字体大小为80,颜色为红色。

Unity3D.3.33

现在,让我们打开FinishedController Script并添加一些代码。 我们首先需要能够访问UI库。 因此,在脚本的顶部,我们需要使用UnityEngine.UI进行添加,然后添加一个public Text finishedText UnityEngine.UI ,以便可以访问我们的text元素。

Unity3D.3.34

现在回到编辑器。 让我们单击“完成”多维数据集对象,然后将“文本”对象拖到脚本的“完成文本”字段中。

Unity3D.3.35

现在,我们可以访问text元素。 要设置我们的文本,让我们在FinishedController > Start function finishedText.text = “”编写; 从某种意义上讲,这将在我们运行游戏时通过将文本保留为空白来隐藏文本。

Unity3D.3.36

现在,让我们OnTriggerEnter函数,并添加代码以在文本中写上“ You Finished”。

Unity3D.3.37

现在按播放。 我们应该看到文本在游戏开始时就消失了。 一旦找到饰面并跨入多维数据集,它将为您提供完成的文本。

Unity3D.3.38

Unity3D.3.39

现在让我们做与文本相同的操作,但是这次添加一个按钮。 选择按钮,然后在检查器中,更改文本以重新启动游戏。 让我们将其保留在默认位置。

Unity3D.3.40

现在,让我们转到FinishController并添加另一个公共UI元素public button restartButton

Unity3D.3.41

然后返回到“完成”对象的检查器。 让我们将按钮拖动到restartbutton

Unity3D.3.42

让我们在启动函数中添加一些代码。 我们将希望隐藏代码,以使我们无法一直看到它,还需要重置一些代码。 首先,我们可以添加restartButton.gameObject.SetActive(false)隐藏,这将隐藏游戏对象。 然后在OnTriggerEnter我们需要使用restartButton.gameObject.SetActive(true);将其反转restartButton.gameObject.SetActive(true);

Unity3D.3.43

然后在FinishController ,添加一个名为RestartGame()的公共void函数。 这将是我们在按钮on click控制器中调用的函数。 同样在函数中,让我们添加代码以在按下场景时重新加载场景,使用UnityEngine.SceneManagement;在文件顶部添加另一个using语句UnityEngine.SceneManagement; 。 然后,将代码添加到RestartGame Function SceneManager.LoadScene(“Main Scene”); 。 它必须是您在字符串中调用的场景,否则它将更改您的场景,而不是重新加载它( Main.Scene )。

Unity3D.3.44

现在,我们可以转到“层次结构视图”并选择“按钮”对象。 在检查器中,底部有一个On Click Controller ”。 我们只想单击+号并添加一个新的运行时。 然后,将Finish游戏对象拖到下拉列表中,单击no函数,然后选择FinishController => RestartGame

Unity3D.3.45

Unity3D.3.46

现在玩吧。

您现在应该可以玩到游戏结束。 触发完成后,您应该会收到消息“您已完成”和“重新启动游戏”按钮。 如果您单击“重新启动游戏”按钮,它应该允许您再次播放。

Unity3D.3.47

结语

结束!

现在,您应该能够在带有丰富控件的Unity3D中创建一个简单的3D游戏或应用程序。 请留下您的任何评论或问题。 谢谢阅读!

翻译自: https://www.javacodegeeks.com/2016/08/building-3d-simulations-unity3d-part-3.html

unity 3d 仿真

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值