【Unity3d】学习笔记(0)

【Unity3d】学习笔记(0)

目录

  • Unity3d学习笔记0
    • 目录
    • 前言
    • 正文
      • 游戏对象GameObjects和组件Component
      • 物理组件 Physics Component
      • 预设 Prefabs
      • 向量Vector

前言

我学习Unity3d的方法是通过实战案例来学习,碰到不知道的概念在反过来查找并理解概念的意思。我认为这样比单纯的了解一大堆概念之后在开始实践要更有趣,更有动力,理解也更深。但是,同时我也认为这种方法比较适合有一些编程经验的人,一些程序设计的通用概念你可能已经驾轻就熟,而Unity特有的概念可能与你熟知的概念有相似性,关联他们,有助于你加深理解。

正文

我选择的第一个实战案例是泰课在线的别踩白块(这里并非帮忙打广告,只是在选择教程时觉得这个拿来入门比较合适)。我也将自己按照教程实践的项目放到了我的GitHub,其中已包含asset资源,欢迎大家来访。(我ignore了许多Unity自行创建的文件,不建议直接使用我的项目)
下面说说我遇到的一些概念:
- 游戏对象(GameObjects)和组件(Component)
- 物理组件 (Physics Component)
- 预设 (Prefabs)
- 向量(Vector)

游戏对象(GameObjects)和组件(Component)

在教程中经常有创建GameObject并将层级视图(hierarchy)中的对象放入其中的操作,那么GameObject是什么?可以直接通过官方文档查看详细信息。这里简单说明下:
GameObject其实是Component(组件)的容器,它们是包含关系。默认的创建的空GameObject包含一个变换组件(Transform Component)且所有GameObject都必须有一个变换组件。变换组件定义了GameObject的位置,旋转和缩放。除变换组件外,GameObject还可以包含其他组件,如常用的脚本组件,物理组件。组件有不同的值和属性(Properties),在构建游戏时可以在编辑器里调整,或者在运行游戏时由脚本来调整。有两种主要类型的属性 :值 (Values) 和引用 (References)。值通常在检视视图 (Inspector)中编辑,引用通常通过将任何其他类型的组件 (Component)、游戏对象 (GameObjects) 或资源 (Assets)拖动到引用下来指定。

物理组件 (Physics Component)

教程中为了实现按钮的响应,为按钮GameObject添加了箱体碰撞体 (Box Collider)的物理组件。然后在脚本组件中编写OnMouseDown函数即可。更多详细信息可参考官方文档。

预设 (Prefabs)

教程中把block图片资源放入hierarchy中,此时Unity把其变为GameObject,绑定脚本组件后又拖回到工程视图中就生产了block的prefab。而原来hierarchy中的GameObject是这个prefab的一个实例。预设 (Prefab) 是一种资源 - 存储在工程视图 (Project View) 中可重复使用的游戏对象 (GameObject)。预设 (Prefabs) 可放入到多个场景中,且每个场景可使用多次。向场景添加一个预设 (Prefab) 时,就会创建它的一个实例。所有预设 (Prefab) 实例都链接到原始预设 (Prefab),实质上是原始预设的克隆。不管您的工程中有多少个实例,您对预设 (Prefab) 作薄出任何更改时,您会看到这些更改应用于所有实例。更多详细信息见官方文档。
实例化预设,教程中使用了如下方法:

GameObject o = Instantiate(whiteBlock) as GameObject;

获取该GameObject的Component用了如下方法:

Block b = o.GetComponent<Block>();

简单点说就是游戏中需要大量生成的GameObject,就可以将其创建成预设,在代码中批量按需生成。

向量(Vector)

向量运算是制作三维图形、物理和动画的基础,深入了解向量运算有助于充分利用 Unity 的大部分功能。更多关于向量的信息可参考官方文档。教程中使用向量来设置transform组件的position值:

gameObject.transform.position = new Vector3 (xOff + colIndex * 1.5f, yOff + rowIndex * 2.8f);

你可能感兴趣的:(Unity3D)