U1L13——物理系统相关
U1L13——物理系统相关
Unity 可帮助您在项目中模拟物理系统,以确保对象正确加速并对碰撞、重力和各种其他力做出响应。
具体可见 物理系统 - Unity 手册
大部分游戏项目使用 Nvidia PhysX 引擎:可通过 Unity 内置的 3D 物理引擎获得的主要组件,您可以在面向对象的项目中使用这些组件。本节包括以下主题:
与物理系统相关的主要概念的概述:刚体、碰撞体、关节、物理接合和角色控制器。
有关特定物理环境的一些说明:连续碰撞检测和多场景物理。
物理调试可视化的描述。
物理系统主要内容
刚体
RigidBody
碰撞器
Collider
物理材质
Physic Material
碰撞检测函数
碰撞检测函数
刚体加力
刚体加力
物理系统第二部分
该部分主要讲解了范围检测和射线检测 —— Unity物理2
物理系统2D部分
该部分主要讲解了2D物理相关 —— Unity2D物理
U1L12——光面板相关基础
U1L12——光面板相关基础
在Window - Randering - Lighting打开
这里只讲解环境和其他设置,更多的内容在进阶里讲解
Environment - 环境相关设置
Skybox Material - 天空盒材质,可以改变天空盒
Sun Source - 太阳来源
不设置会默认使用场景中最亮的方向光代表太阳
Realtime Shadow Color - 实时阴影颜色
Environment Lighting - 环境光设置
Source - 环境光光源颜色
Skybox - 天空和材质作为环境光颜色
Gradient - 可以为天空、地平线、地面单独选择颜色和他们之间混合
它具体作用会在 US3S1L5——Phong光照模型 中解释
Intensity Multiplier - 环境光亮度
Ambient Mode - 全局光照模式只有启用了实时全局和全局烘焙时才有用
Realtime(已弃用)
Baked
Environment Reflections - 环境反射设置
OtherSetti ...
U1L11——光源组件
U1L11——光源组件
Light
Unity 中光照的工作方式类似于光在现实世界中的情况。Unity 使用详细的光线工作模型来获得更逼真的结果,并使用简化模型来获得更具风格化的结果。
Light的参数如下
Type - 光源类型
Spot - 聚光灯
Range - 发光范围距离
Spot Angle - 光锥角度
Directional - 方向光(环境光)
Point - 点光源
Area - 面光源
Color - 颜色
Mode - 光源模式
Realtime
实时光源
每帧实时计算,效果好,性能消耗大
Baked
烘焙光源
事先计算好,无法动态变化
Mixed
混合光源
预先计算+实时运算
Intensity - 光源亮度
Indirect Multiplier - 环境光亮度
改变间接光的强度
低于1,每次反弹会使光更暗,大于1,每次反弹会使光更亮
Shadow Type - 阴影类型
NoShadows - 关闭阴影
HardShadows - 生硬阴影
Soft ...
U1L10-2——Camera代码相关
U1L10-2——Camera代码相关
本章代码关键字
12345678910Camera.main //获取主摄像机(有“MainCamera”Tag的摄像机)Camera.allCamerasCount //获取摄像机的数量Camera.allCameras //得到所有摄像机Camera.onPreCull //摄像机 剔除前 处理的委托函数Camera.onPreRender //摄像机 渲染前 处理的委托Camera.onPostRender //摄像机 渲染后 处理的委托.界面上的参数 //界面上的参数 都可以在Camera窗口中找到,参考可编辑参数相关Camera.main.WorldToScreenPoint() //转换过后 x和y对应的就是屏幕坐标 z对应的 是 这个3D物体 ...
U1L10-1——Camera可编辑参数相关
U1L10-1——Camera可编辑参数相关
Camera窗口
Camera组件参数如下:
Clear Flags - 清除背景方式
skybox 天空盒
Solid Color 颜色填充,将没有拍摄到内容的部分用颜色填充
Depth only 只画该层,背景透明
该选项常用于多摄像机时,让拥有渲染深度(Depth)更高的摄像机叠加它拍摄到的内容(物体或者特效)到渲染深度低的摄像机上,
但又不覆盖渲染深度低的摄像机拍到的内容
注意!只有一个摄像机使用该选项会出现渲染残影
因为没有别的摄像机去覆盖掉它之前拍摄渲染出来的内容
Don’t Clear 不移除,覆盖渲染
Culling Mask - 选择性渲染部分层级,可以指定只渲染对应层级的对象
Projection - 摄像机投影模式
Perspective 透视模式
FOV Axis - 视场角 轴 - 决定了光学仪器的视野范围
Vertical - 以竖直方向夹角为准
Horizontal - 以水平方向夹角为准
Field of view (FOV) - 视口大小,决定视锥 ...
U1L10——Camera摄像机相关
U1L10——Camera摄像机相关
Camera
摄像机 (Camera) 是供玩家观看世界的设备。
屏幕空间的点以像素定义。屏幕的左下角为 (0,0),右上角 为 (pixelWidth,pixelHeight)。z 位置为与摄像机的距离,采用世界单位。
视口空间的点是标准化的、相对于摄像机的点。摄像机左下角为 (0,0),右上角为 (1,1)。z 位置为与摄像机的距离,采用世界单位。
在全球坐标中定义一个世界空间点(例如,Transform.position)。
Camera可编辑参数相关
U1L10-1——Camera可编辑参数相关
Camera代码相关
U1L10-2——Camera代码相关
U1L9——Screen屏幕相关
U1L9——Screen屏幕相关
Screen
访问显示信息。Screen 类可用于获取支持的分辨率列表、切换当前分辨率、 隐藏或显示系统鼠标指针。
本章代码关键字
12345678910111213141516171819202122Resolution //表示分辨率的结构体.wideh //分辨率的宽.height //分辨率的高Screen.currentResolution //获取当前屏幕的分辨率Screen.width //当前屏幕的宽Screen.height //当前屏幕的高Screen.sleepTimeout //设置屏幕休眠模式SleepTimeout.NeverSleep ...
U1L8——Input输入相关
U1L8——Input输入相关
Input
输入 - Unity 手册
访问输入系统的接口。这是老输入系统,新输入系统请看这里 ——> U4S1
Input类 提供了大部分和输入相关的内容,包括:鼠标 键盘 触屏 手柄 重力感应
对于我们目前来说,鼠标 键盘 是必须掌握的核心知识
重点是鼠标和键盘相关的API:GetAxis
注意!输入相关内容一定写在Update中
本章代码关键字
12345678910111213141516171819202122232425262728293031Input //访问输入系统的接口//鼠标相关Input.mousePosition //获取鼠标在屏幕的位置,返回值是Vector3,但是只有x和y有值Input.GetMouseButtonDown() //鼠标按下一瞬间返回True的方法,参数:0左键 1右键 2中键Input.GetMouseButtonUp() //鼠标抬起一瞬间返回True的方法(只会进入一次)参数:0左键 1右键 2中键Input. ...
U1L7-6——坐标转换
U1L7-6——坐标转换
Transform的坐标转换
有 世界坐标转本地坐标 和 本地坐标转世界坐标
其中最重要的就是本地坐标系的点 转世界坐标系的点
比如 现在玩家要在自己面前n个单位前 释放技能 这时可以无需关系世界坐标系
通过 相对于本地坐标系的位置 转换为 世界坐标系的点 进行特效的创建
本章代码关键字
123456this.transform.InverseTransformPoint() //受到缩放影响的 世界坐标系的点 转换为 相对本地坐标系的点 的方法this.transform.InverseTransformDirection() //不受缩放影响的 世界坐标系的方向 转换为 相对本地坐标系的方向 的方法this.transform.InverseTransformVector() //受到缩放影响的 世界坐标系的方向 转换为 相对本地坐标系的方向 的方法this.transform.TransformPoint() //受到缩放影响的 本地坐标系的点 转换为 相对世界坐标系的点 的方法this.trans ...
U1L7-5——父子关系
U1L7-5——父子关系
Transform中的父子关系相关
父子化是使用 Unity 时需要理解的最重要概念之一。
当一个游戏对象是另一个游戏对象的__父__项时,__子__游戏对象完全跟随其父项移动、旋转和缩放。
可将父子化看作是手臂与身体之间的关系;每当身体移动时,手臂也随之移动。
子对象也可以有自己的子项,以此类推。所以,手可以视为手臂的“子项”,然后每只手都有几根手指,等等。
任何一个对象都可以有多个子项,但只有一个父项。这些多级父子关系形成了变换组件的_层级视图 。
层级视图最顶层的对象(即层级视图中唯一没有父项的对象)称为__根_。
在脚本中,我们可以用Transform类中的属性和方法来操作父子关系
本章代码关键字
12345678910111213this.transform.parent.name //通过transform获取父对象的的名字this.transform.parent //父对象的Transform对象的属性,可以通过这个获取、设置、脱离父对象this.transform.SetParent() ...