找回密码
 立即注册
查看: 248|回复: 0

[简易教程] Unity 3D入门1(闹钟)-来源翻译自Catlike Coding

[复制链接]
发表于 2022-1-22 13:28 | 显示全部楼层 |阅读模式
正式开启Unity之旅之前你需要完成相关软件的安装:

  • 安装 .NET Core
  • 安装 Unity
  • 安装 VSCode
这部分内容详见另外一篇文章:
重庆猫爷:Unity 3D入门(基础软件环境安装)
原文链接:Game Objects and Scripts  (原文末有资源下载
原文标题:Game Objects and Scripts Creating a Clock
在本文中,您将接触到以下内容:

  • 使用simple objects创建一个时钟
  • 编写一段C#脚本
  • 使用旋转的时钟指针表示时间
  • 让时钟指针转动起来
本文是讲解Unity基本操作系列文章的第一篇。在本文中,将创建一个简单的时钟并且将编写一个组件用来显示实时时间。到目前为止,Unity编辑器对你而言还是陌生的,但是我们假设你已经有过了多窗口编辑器的经验。
在我最近编写的教程末尾,读者可以找到教程的授权许可,教程项目的代码库以及该教程的PDF版本文件。
本文中的案例是使用 Unity 2017.4.40c1编写的。



让我们创建一个是时钟吧


  • 创建一个项目
在使用Unity编辑器之前,我们需要在先创建一个项目。
1.1 新项目
启动Unity后,在首页就可以创新一个项目。




1.2 编辑器界面
我个人比较喜欢2 by 3的界面布局


通过每一个窗口右上角的三点按钮可以对其进行配置。


1.3 场景
Ctrl+S,或者左上角 File-Save Scene,保持一个场景


2.创建一个简单的时钟
项目创建完毕后,我们就可以创建时钟了
2.1 创建一个游戏对象
在Unity中时钟就是一个游戏对象Game Object。我们先创建一个最简单的游戏对象-空对象,通过菜单项GameObject / Create Empty创建,并且将其改名(Rename)为Clock




我们观察一下Clock这个游戏对象的默认属性,上图已经标红。
然后Clock还包括一系列的组件,首当其中的就是用来控制position, rotation, and scale的Transform。


在左边的Scene中可以看到这个空对象的三位坐标显示,如果这个没有看到,请确保当前选中的Move Tool。


2.2 制作时钟的圆盘
虽然我们已经有了一个时钟对象,但是我们什么也看不见。我们必须给它加入3D模型用以实现渲染工作。Unity中已经包含了一些可以用来创建一个简单时钟的原生对象。通过GameObject / 3D Object / Cylinder实现往场景中加入一个圆柱体。这个圆柱体和之前创建的Clock有一样的Transform。
可以看到这个圆柱体对象比之前空对象多了三个组件,首当其冲的就是MeshFilter,已经设置为圆柱体网格:


第二个组件是CapsuleCollider,它包含对象的3D特性。这个对象是圆柱体,因为Unity没有原生的圆柱体碰撞器(cylinder collider),所以使用了胶囊碰撞器(capsule collider)。 我们并不需要这个胶囊碰撞器,所以可以移除掉这个组件。也可以通过使用MeshCollider 这个组件来控制圆柱体的物理特性:


第二个组件是MeshRenderer。这个组件用来实现对象渲染,包括渲染的材质,当前材质设置为默认,组件之后的区域也展示了材质情况:


第三个是MeshRenderer。这个组件用来实现对象网格渲染,包括渲染的材质,当前材质的设置在Inspector的最下方也可以操作。
圆柱体变形到时钟的圆盘,是通过对Transform中的Scale进行扁平化设置实现的:Y=0.2,X=10,Y=10。因为圆柱体网格是2个单元高度,当前时钟圆盘的高度为0.4个(0.2*2)单元高度。




接下来做几件事情:对圆盘改名为Face,将其归于Clock对象下级,让圆盘正面面对屏幕
圆盘改名,拖到Clock下面:



让圆盘正面面对屏幕:
这个操作就比较复杂了,需要自己慢慢体会,修改Clock和Face的Tranform组件的Rotation值实现。修改的组合无数,无标准答案。





Creating the Clock Periphery

2.2 制作时钟的刻度
在空对象Clock的下级通过GameObject / 3D Object / Cube添加一个立方体对象,命名为Hour Indicator 12。在Unity中,子对象在层级结构中的顺序不会对效果产生影响,因此Hour Indicator 12在Face的上下无所谓。


Set its X scale to 0.5, Y scale to 1, and Z scale to 0.1 so it becomes a narrow flat long block. Then set its X position to 0, Y position to 4, and Z position to 0.25. That places it on top of the face to indicate hour 12. Also remove its BoxCollider component.
原文中:Cube的Scale设置:X=0.5,Y=1,Z=0.1,Position设置:X=0,Y=4,Z=-0.25




但是这个做出来后,就变成了一个悬浮在空中的修长的怪物。重新修改参数后,好像效果好点了:




改变一下Hour Indicator 12的颜色,Assets / Create / Material,新的Material命名为Hour Indicator,通过Albedo这个属性改变颜色。



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-5-9 21:17 , Processed in 0.105565 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表