前言
unity是一套具有完整体系和编辑器的跨平台游戏开发工具。也就是游戏引擎。
unity目前有50%的占有率。
个人的一个梦想就是有一天能开发属于自己的游戏。故想要在unity的路走下去。
Unity优势:
基于C#编程,容易上手。我本人并没有学习过c#语言。但接触过c、c++以及java。
独特的***面向组件***游戏开发思想让游戏开发更加简单易复用。
拥有十分成熟的所见即所得的开发编辑器。
拥有良好生态圈,商城中包含大量成熟的功能脚本与资源。
强大的跨平台性。可以制作pc、主机、AR、VR等多平台游戏。
下载安装unity
官网下载即可。使用unityhub能更好的管理unity的版本。
安装稳定版本的unity编辑器
第一次使用unity
#目标1:创建各种几何立体物件。
右键层级框,选择创建3D对象
#目标2:切换不同角度观看物体
摁住鼠标右键,配合WASD和鼠标滚轮使用切换查看角度
#目标3:了解坐标系(Unity使用左手坐标系)
全局坐标系是整个场景的坐标系
局部坐标系是一个对象或一个对象系统的坐标系
#目标4:对物体的基本操作
使用快捷键
q:查看工具
w:移动工具
e:旋转工具
r:缩放工具
......
unity资源商店assetstore.unity.com/
可以在资源商店中购买许多现成的对象、组件等资源。能更便捷的帮助我们编写自己的游戏。
地形(可以不重点学,大部分都是交由同事帮完成)
在添加对象中选择地形以添加地形。选中地形可以进行绘制地形,也可以在资源商店中选中地形来下载使用。
脚本组件
# 选中组件添加
每个对象都有一些组件属性
# 创建组件
将组件拖到对象检查器中,或者在检查器中直接单击添加组件按键
脚本生命周期
从头到尾,创建到销毁
# Awake 最早调用
private void Awake()
{
Debug.Log("awake")//可以看到控制台输出awake
}
# OnEnable 组件激活后调用
private void OnEnable()
{
Debug.Log("OnEnable")//可以看到控制台在输出awake后输出OnEnable
}
# Start 在update前调用一次 OnEnable后调用
void Start()
{
Debug.Log("start")
}
# Update 帧率调用方法
void Update()
{
//Debug.Log("Update")
}
# LateUpdate Update每次调用完后调用一次
void :LateUpdate()
{
//Debug.Log("LateUpdate")
}
# FixedUpdate 固定频率调用方法
private void FixenUpdate()
{
//Debug.Log("FixenUpdate")
}
# OnDisable 与OnEnable相反,组件未激活时使用
private void OnDisable()
{
Debug.Log("OnDisable")
}
# OnDestroy 被销毁后调用一次
private void OnDestory()
{
Debug.Log("OnDestory")
}
脚本的执行顺序
#选中脚本的检查器框中的
向量基础
新建一个c#脚本,在unity中,vector是向量,
//新建向量,其中Vector3是Unity中的向量类型
Vector3 v = new Vector3(1,1,0.5f);
//也可以直接使用Unity中的基础向量
v = Vector3.zero;
v = Vector3.right;
//...
Vector3 v2 = Vector3.forward;
//计算两个向量的夹角
Debug.Log(Vector3.Angle(v,v2));
//计算两个点之间的距离
Debug.Log(Vector3.Distance(v,v2));
//点乘
Debug.Log(Vector3.Dot(v,v2));
//叉乘
Debug.Log(Vector3.Cross(v,v2));
//插值
Debug.Log(Vector3.Lerp(v,v2));
//向量的模
Debug.Log(V.magnitude);
//规范化向量
Debug.Log(v.normalized);