跳转至

Unity简介

Unity是一款由Unity Technoligies开发的跨平台2D/3D游戏引擎,并可以发布到Windows, MacOS, Linux, iOS等诸多平台

Unity开发环境

Unity工程及Unity Editor版本管理:Unity Hub

  • 图形化编辑界面:Unity Editor
  • 下载地址:https://unity3d.com/get-unity/download
  • 需要注册Unity账号。非盈利的个人开发者免费使用
  • 代码编辑器:Visual Studio(安装时选择"使用Unity的游戏开发"),VS Code(在Unity Editor中修改默认代码编辑器)

注意

  • 在一个电脑中不能安装两个及以上版本的unity,否则会产生意想不到的问题

Unity基本知识

  • Scene
    • Scene包含了若干GameObject,一个游戏可以包含多个场景,不同的场景之间是独立的,并且可以通过脚本切换场景
  • GameObject
    • 一个GameObject就是场景中的一个对象,比如一个球,一个人;它可以独立地活动。GameObject之间存在Parent和Children的关系
    • GameObject之间的父子关系并非继承关系,而只是一种从属关系
  • Component
    • 一个GameObject可以拥有若干个Component,两者之间仍是一种从属关系
    • 每个Component可以独立地实现GameObject需求的某些功能。常用的如Rigid(刚体),Animator(动画)等
  • Prefab(个人理解是“副本”)
    • Prefab与GameObject之间的关系类似于类和对象的关系。即后者是前者的实例
    • Prefab的使用能够减少不必要的重复工作。当Prefab被修改时,它的所有GameObject实例也会被修改
  • Script
    • 通过编写代码,并将Script添加为某个GameObject的Component,当该GameObject被实例化并且处于活动状态,且该Component也处于活动状态时,它便可以控制GameObject的行为
    • 通常我们使用的Script由C#语言构成
    • Unity脚本是基于Mono的,所有需要使用Unity引擎的脚本,都应该继承自MonoBehaviour类
    • 只有那些完全不依赖于Unity引擎进行初始化和更新,也不调用Unity的API的脚本,比如单纯进行数学计算的类,是不需要继承MonoBehaviour的
  • Assets(资源库)
    • 你的所有Prefab, Script以及Material等资源都在Assets中进行管理。对于规模较大的工程,总应该建立规范的目录结构。

Unity运行方式

  • 首先加载一个场景:当场景被加载时,场景中的所有GameObject都会被加载
  • 当GameObject加载时,其所有Component也随之实例化
  • 当某个Script实例化时,其Awake()方法和Start()方法被先后调用
  • 当所有Start()方法都被调用完毕后,游戏会进入第一帧,每隔一段时间就会Update一次