Unity学习日志_Unity父子关系与Camera
Unity学习日志_Unity父子关系与Camera
本次组件简单介绍将不包含monoBehaviour类及其向上回溯的父类。
1. 关于父子物体
首先需要声明的一点是所有游戏物体的Transform组件中的position,rotation和Scale属性都是相对于父物体而言的。可以通过右击Inspector面板名称来选择Debug模式进行查看。
在unity中带有local字样的属性也就意味着其数值是相对于父物体的。
关于父子物体的一些现象
1. position:
改变父物体的position,父物体连同子物体一起移动;改变子物体的position,父物体不随子物体移动。
当子物体的position设置为(0,0,0)时,子物体与父物体中心点重合。
2. rotation:
首先介绍两个位于unity快捷工具栏右侧的选项:
左侧为调节物体轴心点的选项分为:Pivot和center两种其中Pivot可以理解为父物体的中心点,Center则可以理解为是当前父子物体的中心点。
Pivot(红色胶囊为父物体):
Center:
右侧为调节当前被选中物体的坐标轴是Local(自身坐标系)还是World(世界坐标系)
Local(左上角为世界坐标系参考):
World:
3. Scale:
子物体的真实缩放比例Scale等于子物体Scale比例父物体Scale比例。可以通过下述代码在unity脚本中直接获得。
Vector3 _truthScale = this.transform.LossyScale;//此属性为只读属性
效果图演示(下述变化都是Scale的Y值变2):
父物体变化Scale,子物体不变:
子物体变化Scale,父物体不变:
父子物体同时变化Scale:
关于父子物体使用的小技巧
在处理美工交过来的模型时,推荐将模型拉入一个空的gameobject,形成父子物体关系,组件只给空的gameobject上,这样就可以防止日后更换模型时需要重新上组件的情况。空物体通常用来管理和控制多个相互之间无关联的游戏物体。
2. Mesh filter&Mesh renderer简单介绍
Mesh filter组件负责一个游戏对象的纹理,Mesh rendered组件负责一个游戏对象的渲染,只有一个游戏对象同时拥有这两个组件才可以被看见。
3. Camera
Camera简介:
一些概念:
camera可以看到的物体必须处于camera的视锥内:
一个场景中可以有多个camera,但camera上的audio listener只能有一个是激活的状态。当同时激活多台camera时console中的提示:
Camera中的默认组件:
Camera组件:
Clear flags:对于空白区域的处理,有skybox(天空盒),solidcolor(固定颜色处理),depthonly(仅有深度,只渲染物体),don’t clear(不做处理)。
Background:负责当clearflags选择solidcolor时选择颜色。
Depth:渲染顺序,数值小的先渲染。为了使UI在前面,UI相机的depth应为最大的。
设置“小地图”深度为0,主相机为-1的效果:
Culling mask属性:决定camera可以看见哪些层(layer),看不见的层不会渲染。
Projection属性:管理camera的类型,分为透视相机(3D,perspective模式)和正交相机(2D,orthographic模式)。其中透视模式下的field of view属性是管理相机缩放的,可用于制作望远镜效果。数值越小,看的越远。正交模式对应的是size属性。
调节field of view为70:
调节field of view为120:
Clipping planes属性:相机的渲染距离。
Viewpoint rect属性:x,y控制相机的方位(0-1代表0%-100%),w,h控制相机的大小(0-1代表0%-100%),可用于制作小地图或者分屏操作。用于制作小地图时建议设置成正交相机。
调节Viewpoint rect如下图:
*Rendering Path属性:用于定义相机将使用什么渲染方法。
Target Texture属性:将相机的渲染画面输出到一个Render Texture纹理上。
Target Texture的应用:
1. Render Texture纹理创建:
2. 创建一个material,修改此material的shader为Texture并将Render texture赋给该material。
3. 将该material赋给游戏对象的Mesh组件。
Camera2的画面被投放在了plane游戏对象上。
Target Texture使用总结:
1. 创建Render Texture;
2. 将创建好的Render Testure拖拽给对应的Camera;(获得相机画面)
3. 创建一个material并将shader改为Texture,将Render Texture赋给该material;
4. 将该material赋给想要显示相机画面的物体;
*Occlusion Culling属性:是否开启遮挡剔除。
der Testure拖拽给对应的Camera;(获得相机画面)
3. 创建一个material并将shader改为Texture,将Render Texture赋给该material;
4. 将该material赋给想要显示相机画面的物体;
*Occlusion Culling属性:是否开启遮挡剔除。
Unity学习日志_Unity父子关系与Camera相关推荐
- Unity学习日志_Unity地形系统简介
Unity学习日志_Unity地形系统简介 地形创建: Terrain中的组件: Transform Terrain 四大功能: paint Terrain,可以选择下面几种具体的模式: Create ...
- Unity学习日志_车轮碰撞器简介
Unity学习日志_车轮碰撞器简介 1. 简介: 车轮碰撞器是一种针对地面车辆的特殊碰撞体.他有内置的碰撞检测.车轮物理系统和有滑胎摩擦的参考体.除了车轮,该碰撞体也可以用于其他游戏对象. 属性: M ...
- Unity学习日志_动画系统简介
Unity学习日志_动画系统简介 Animation,Legacy动画系统 若要使用Animation,需要在创建Clip之前为物体手动添加Animation组件. Animation组件面板: 属性 ...
- Unity学习日志1
unity入门 1.学习路线 初级:1.配置 2.unity官方入门教程 3.2d入门 4.3d入门 b站学习和官网learn.unity 进阶:核心知识点 中级: 高级: 2.基础阶段 unity安 ...
- unity学习日志 第一天
第一次接触unity3d,而且还是英文版的就觉得有很严重的认知障碍,不过经过我的一再尝试和同学的帮助已经能将界面中大多数功能掌握了.其他功能我只是试了试,地形编辑器我感觉我能玩一天,不过我只会向我的地 ...
- Unity学习日志_七行核心代码实现第三人称游戏的相机逻辑
七行核心代码实现第三人称游戏的相机逻辑: 使用到的一些知识: 欧拉角 虚拟轴 四元数计算 向量计算 代码实现: 其中RoundMovement方法为核心方法(): using UnityEngine; ...
- Unity子物体脱离父物体,解除父子关系,子物体不随父物体移动
在Unity中创建一个手雷,并且需求是扔出手雷时,手雷不能跟随人物移动 这个需要调用 gameObject.transform.DetachChildren方法,将GrenadePosition下的所 ...
- Unity:计算两个物体(没有父子关系)的相对坐标
Unity:计算两个物体(没有父子关系)的相对坐标 问题描述 实现方法 实现原理 参考链接 问题描述 计算Unity场景中物体B在物体A坐标系下的坐标,且两物体没有父子关系 实现方法 计算一个物体A的 ...
- Unity小狐狸学习日志、关于角色创立,移动控制以及跳跃动画等方面
============================================================== GMAE:2d 导入数据包:创建项目后在unity商店导入数据包. 数据载 ...
最新文章
- 中科院刘焕勇老师知识图谱关于schema博客
- iptables自定义链增加和删除
- 团队作业—系统设计和任务分配
- YOLOX: Exceeding YOLO Series in 2021 --- Study Notes
- 华为等上榜全球100大最具影响力企业;猫扑关闭发帖功能;亚马逊要给逾50万名员工加薪 |极客头条...
- CCF201703-3 Markdown(100分)【文本处理】
- 【图像压缩】基于matlab JEPG图像压缩【含Matlab源码 1167期】
- thinkphp 通过Redis实现增删改查操作
- 服务器raid的原理以及怎么恢复数据
- SAP License:SAP五大主流ERP一览
- 计算机内存不足应该换什么,电脑内存不够用了怎么办
- 关于Shine-hale
- JAVA高效批量插入数据到数据库demo
- Unity表情聊天(NGUI图文混排)
- Win11打开本地组策略编辑器的两种方法
- OpenJudge 7624 山区建小学
- PS快速制作凹陷直线
- php 函数索引 中文索引
- 碳排放权、碳交易日度数据分部门、能源碳排放面板数据
- 基于Winform开发S7.net协议 与Smart-200PLC通讯