常用编辑器组件
unity的特色之一就是编辑器可视化,很多常用的功能都可以在编辑器中完成。常用的编辑器可分为两种:原有组件和拓展组件。原有组件是编辑器原生的一些功能,拓展组件是编辑器智商通过脚本拓展的新功能。
摄像机
摄像机是unity最为核心组件之一,游戏界面中显示的一切内容都得需要摄像机来照射才能显示。摄像机组件的参数如下:
clear flags:背景显示内容,默认的是skybox。前提是必须在render settings 中设置天空盒子材质。
background:背景显示颜色,如果没有盒子,即显示这个颜色。
culling mask:用于选择是否显示某些层,默认的是everything。
projection:摄像机的类型。
field of view:摄像机的视野范围。
near:一摄像机为圆心,绘制最近点的距离。
far:一摄像机为圆心,绘制最远点的距离。
normalized view port rect:设定Game视图的显示区域参数,多台摄像机可以通过设置各自显示区域先分屏同时显示。
depth:摄像机的深度。若存在多个摄像机,先渲染该值较小的摄像机。
rendering path:渲染路径。
target texture:目标纹理,设置后会挡住摄像机。
摄像机的类型
主要分为两类:放射观察角度,垂直观察角度。那怎么选择摄像机的类型咧?在hierarchy视图中选择摄像机对象,然后在右侧inspector视图中单击projection下拉菜单。可以看见两个选项:perspective(放射角度)和orthographic(垂直角度)。
perspective(放射角度):
orthographic(垂直角度):
但在游戏中有时需要动态修改摄像机的类型。那怎么实现咧,这就需要通过代码来实现了。
using UnityEngine; using System.Collections; public class Script_05_02 : MonoBehaviour { //摄像机组件 private Camera camera; void Start () { //获取摄像机组件 camera = gameObject.GetComponent<Camera>(); } void OnGUI() { if(GUILayout.Button("放射观察",GUILayout.Height(50))) { camera.isOrthoGraphic = true; } if(GUILayout.Button("垂直观察",GUILayout.Height(50))) { camera.isOrthoGraphic = false; } } }
上述代码中使用isorthographic引用来修改当前摄像机的类型,将该变量值赋值为true,表示摄像机类型为垂直观察,false表示为放射观察。
定制导航菜单栏
unity为开发者提供了导航栏菜单的程序接口,使用代码可以动态添加菜单栏的选项及子选项。本例为菜单栏添加一个“新菜单栏”代码如下:
using UnityEditor; using UnityEngine; class Script_05_03 : MonoBehaviour { [MenuItem ("新菜单栏/克隆选择的对象")] static void ClothObject() { Instantiate(Selection.activeTransform, Vector3.zero, Quaternion.identity); } [MenuItem ("新菜单栏/克隆选择的对象", true)] static bool NoClothObject() { return Selection.activeGameObject != null; } [MenuItem ("新菜单栏/删除选择的对象")] static void RemoveObject() { DestroyImmediate (Selection.activeGameObject,true); } [MenuItem ("新菜单栏/删除选择的对象", true)] static bool NoRemoveObject() { return Selection.activeGameObject != null; } }
我们使用方法[MenuItem ("新菜单栏/删除选择的对象")]在导航菜单栏中添加一个菜单项,该方法的参数为菜单中子选项的完整路径。
在菜单导航栏里不仅可以绑定方法,还可以绑定脚本:
using UnityEditor; using UnityEngine; //添加该脚本至组件菜单栏中 [AddComponentMenu("新的脚本/自动旋转")] class Script_05_04 : MonoBehaviour { void Update() { //自身旋转 transform.Rotate(0.0f,Time.deltaTime * 200,0.0f); } }
抗锯齿
在3D渲染中,可能会出现锯齿,为什么会出现锯齿,因为为了运行效率而牺牲了渲染效果。在unity中可以设置抗锯齿效果,选择edit——project setttings——quality,此时右侧将弹出如下窗口:
name:渲染质量等级名称。
pixel light count:渲染像素灯的最大数量。
texture quality选择贴图的质量,质量越好越需要高性能。
anisotropic textures:贴图显示级别。
anti aliasing:设置抗锯齿的等级,其值越大表示效果越好。
soft particles:是否开启混合粒子效果。
shadows:设置阴影的类型。
shadow resolution:阴影的效果级别。
shadow projection:现在阴影效果的分辨率。
shadowcascades:设置阴影的层次等级。
shadow distance:语言的投射距离。
blend weights:节点的重量。
vsync count:设置同步渲染数量。
lod bias:lod的偏移量。
maximum lodlevel:最大LOD等级。
levels表示设置4个不同游戏平台的渲染效果,默认情况,渲染效果分为6个级别:fastest,fast,simple.good.beautiful,fantastic。依次往上表示渲染效果越来越好,但速度慢。
抗锯齿设置anti aliasing级别为8x multi sampling对比如下图会发现效果很明显:
原图:
抗锯齿:
【Unity 3D】学习笔记三十四:游戏元素——常用编辑器组件,布布扣,bubuko.com
【Unity 3D】学习笔记三十四:游戏元素——常用编辑器组件
原文:http://blog.csdn.net/u013289188/article/details/37591869