Unity五个基本的文件夹
* Assets:存放当前项目所有的资源
* Library:库文件
* ProjectSettings:项目设置
* Temp:项目缓存文件夹
* UnityPackageManager:存放包文件
UnityUi的五大视图
scene(场景视图) 结构视图中创建的物体都能在场景视图中生成
game(游戏视图) 当编辑器启动后,可以看到游戏运行的窗口
project(工程视图) 存放的是当前项目的所有资源和文件以及脚本
hierarchy(结构视图) 创建物体都在这个视图中
inspector(属性视图) 描述当前物体所带有的一个属性
游戏物体指的是:游戏中的对象,包括摄像机以及游戏中各种各样的可视或不可视的对象
右键空白处创建3D对象
其中,Sphere为单个对象,Capsule为Cube的子对象,移动Cube对象时Capsule对象也随之移动,移动Capsule对象时Cube对象不会随之移动
* 特点:
* 1.当父物体发生变化时,子物体会跟随变化,当子物体发生变化时,父物体不会变
* 2.一个父物体可以有多个子物体,但是一个子物体只有一个父物体
用C#编写脚本查找对象
1、首先需要创建一个Script文件夹用于存放C#脚本,右键创建C# Script文件(注意,类名和文件名必须保持一致)
2、打开脚本确保资源管理器正确加载
在这里我们介绍3种查找物体的方法
* 无父子关系的查找(可以将脚本挂载至无父子关系的物体上)
* GameObject.Find()
* 1.当查找的过程中,出现同名时,会找到最近创建的一个游戏物体
* 2.无法查找隐藏的游戏物体
* 3.完整路径查找
* 标签查找(可以将脚本挂载至无父子关系的物体上)
* GameObject.FindGameObjectWithTag
设置标签
* 有父子关系的查找(必须将脚本挂载到父节点上、transform可以理解为this)
* Transform.Find()
* 1.当查找的过程中,出现同名时,会找到父物体下的第一个游戏物体
* 2.可以查找隐藏的游戏物体
* 3.完整路径查找
(将脚本挂载到子节点上)
!!未找到物体报错 !!
用C#脚本将一个物体设置为另一个物体的子物体(将脚本挂载到父物体上)
渲染顺序函数
从上往下渲染、从下往上显示
改变渲染顺序
设置父物体下的渲染顺序
SetAsFirstSibling:设置为父物体下的第一个子物体
SetAsLastSibling:设置为父物体下的最后一个子物体
SetSiblingIndex:设置为父物体下的第index个子物体,其中index为索引,越小越先
本地坐标和世界坐标转换
当没有父子关系时,世界坐标和本地坐标相等,
当有父子关系时,世界坐标和本地坐标不一致,
子物体的世界坐标=父物体的世界坐标+子物体的本地坐标
* 屏幕坐标转换为世界坐标
* Vector3 Camera.main.ScreenToWorldPoint(new Vector3(screenPos.x,screenPos.y,zInfo))
* 世界坐标转屏幕坐标
* Vector3 Camera.main.WorldToScreenPoint(new Vector3(worldPos.x,worldPos.y,worldPos.z))
* 世界坐标转视口坐标
* Vector3 Camera.main.WorldToViewportPoint(new Vector3(worldPos.x,worldPos.y,worldPos.z))
* 视口坐标转世界坐标
* Vector3 Camera.main.ViewportToWorldPoint(new Vector3(viewPortPos.x,viewPortPoint.y,zInfo))
* 视口坐标转屏幕坐标
* Vector3 Camera.main.ViewportToScreenPoint(new Vector3(viewPortPos.x,viewPortPoint.y,zInfo))
* 屏幕坐标转视口坐标
* Vector3 Camera.main.ScreenToViewportPoint(new Vector3(screenPos.x,screenPos.y,zInfo))