Unity API
2016-06-21 22:35
627 查看
我说:”有空就写点什么,方便自己以后查看吧“
Application.targetFrameRate 目标帧速率
设置帧频,前提是需要设置菜单栏Edit-Project Settiong-Quality面板关闭属性VSync Count(可以理解为帧频设定,同步显卡帧率到显示器刷新率)
public class example : MonoBehaviour {
void Awake() {
Application.targetFrameRate = 300;
}
}
AudioClip 音频剪辑
通过AudioSource播放的音频文件,例如mp3/wav等文件
AudioSource 音频源
AudioSource.PlayOneShot 播放一个音频剪辑
function PlayOneShot (clip : AudioClip, volumeScale : float = 1.0F) : void
Gizmos 辅助线框
Gizmos是用于在场景视图可视化调试或辅助设置。
所有gizmo绘制需要在脚本的OnDrawGizmos或OnDrawGizmosSelected里函数完成。
OnDrawGizmos在每帧调用。所有在OnDrawGizmos中渲染的gizmos都是可见的。
OnDrawGizmosSelected仅在脚本附加的物体被选择时被调用。
Gizmos.DrawIcon 绘制图标
public static void DrawIcon(Vector3 center, string name, bool allowScaling = true);
绘制的Icon只在Scene场景下可以看到,Game场景下看不到,方便调试
Icon图片文件需要放在Asset/Gizmos文件夹下
public class ExampleClass : MonoBehaviour {
void OnDrawGizmos() {
Gizmos.DrawIcon(transform.position, "Light Gizmo.tiff", true);
}
}
QualitySettings.vSyncCount 垂直同步数
static var vSyncCount : int
可以理解为同步显卡的帧频到显示器刷新率,在Edit-Project Settiong-Quality面板可以设置或者通过代码设置:
//0 FPS大概是1帧,可以通过设置Application.targetFrameRate来设置帧频,其他两值不可以动态修改帧频了
//1 FPS大概是60帧(根据我的显卡)
//2 FPS大概是30帧(根据我的显卡)
QualitySettings.vSyncCount = 1;
什么是FPS?
每秒传输帧数(Frames Per Second)
FPS是图像领域中的定义,是指画面每秒传输帧数,通俗来讲就是指动画或视频的画面数。
FPS”也可以理解为我们常说的“刷新率(单位为Hz)”,例如我们常在CS游戏里说的“FPS值”。
RenderSettings 渲染设置
RenderSettings.ambientLight 环境光
static var ambientLight : Color
RenderSettings.ambientLight = Color.red;//使环境光的颜色为红色
除了用代码控制,还可以通过菜单栏Edit-Render Settingst弹出的Inspector面包中修改
Screen.lockCursor 锁定光标
光标将自动隐藏,居中于视图并且不会离开这个视图。
当你按下Esc时,光标将自动被解锁。
Screen.lockCursor = true;//锁定光标
Transform.LookAt 注视
function LookAt (target : Transform, worldUp : Vector3 = Vector3.up) : void
旋转当前物体使z轴指向target物体
function LookAt (worldPosition : Vector3, worldUp : Vector3 = Vector3.up) : void
旋转当前物体使z轴指向worldPositioin点
Transform.TransformDirection 变换方向
function TransformDirection (direction : Vector3) : Vector3
function TransformDirection (x : float, y : float, z : float) : Vector3
从自身坐标到世界坐标变换方向。
根据自己的坐标系变化为世界坐标系下的坐标。
例如:
public Transform m_cubeTrans;
Vector3 vec = m_cubtTrans.TransformDirection(new Vector3(1,0,0));
相对于方块m_cubeTrans的坐标系下(比如方块有旋转,则其自身的坐标系必然跟世界坐标系不一样),坐标(1,0,0)转换为世界坐标系下坐标为vec
Transform.Translate 平移
参数relativeTo : Space = Space.Self,移动相对自身坐标轴,Space.World 移动相对世界坐标轴
Time.deltaTime 增量时间
单位秒,表示每帧的经过时间。
放在Update()函数中的代码是以帧来执行的.如果我们需要物体的移动以秒来执行.我们需要将物体移动的值乘以Time.deltaTime。
如果你加或减一个每帧改变的值,你应该与Time.deltaTime相乘。当你乘以Time.deltaTime实际表示:每秒移动物体10米,而不是每帧10米。
public class example : MonoBehaviour {
void Update() {
float translation = Time.deltaTime * 10;
transform.Translate(0, 0, translation);
}
}
Time.realtimeSinceStartup 自游戏开始实时时间
以秒计,自游戏开始的实时时间(只读)。
不被Time.timeScale影响
Time.timeScale 时间缩放
影响Unity中和Time.deltaTime和Time.time相关计算的内容,比如做游戏暂停(Time.timeScale=0)的时候其实影响的是利用Time.deltaTime实现的移动。
Update和LateUpdate不受timeScale的影响它们受帧频的影响,FixedUpdate受timeScale的影响,因为FixedUpdate函数是根据时间来的跟帧频无关。
如果想不受timeScale的影响,请使用Time.realtimeSinceStartup
Quaternion.identity 同一性
旋转角度为0,不旋转
transform.rotation = Quaternion.identity;
Quaternion.LookRotation 注视旋转
static function LookRotation (forward : Vector3, upwards : Vector3 = Vector3.up) : Quaternion
参数forward可以理解为一个方向向量,Quaternion四元数用于表示旋转,可以理解为角度,此方法就是通过forward这个方向向量返回朝向目标的一个角度。
关于向量的减法在这里说一下:两个有公共起点的向量相减,结果由减向量的终点指向被减向量的终点。
向量AB减去向量AC等于向量CB(AB-AC=CB,此处AB为被减向量,AC为减向量,这一点不要弄混)
public class example : MonoBehaviour {
public Transform target;
void Update() {
Vector3 relativePos = target.position - transform.position;
Quaternion rotation = Quaternion.LookRotation(relativePos);
transform.rotation = rotation;
}
}
//UnityEngine-Attribute
AddComponentMenu
默认创建的脚本会出现在菜单栏Component/Script下面,为了便于管理,我们可以自定义脚本在菜单栏中的位置。
[AddComponentMenu("MyScript/Test")]
public class Test : MonoBehaviour
{
}
Application.targetFrameRate 目标帧速率
设置帧频,前提是需要设置菜单栏Edit-Project Settiong-Quality面板关闭属性VSync Count(可以理解为帧频设定,同步显卡帧率到显示器刷新率)
public class example : MonoBehaviour {
void Awake() {
Application.targetFrameRate = 300;
}
}
AudioClip 音频剪辑
通过AudioSource播放的音频文件,例如mp3/wav等文件
AudioSource 音频源
AudioSource.PlayOneShot 播放一个音频剪辑
function PlayOneShot (clip : AudioClip, volumeScale : float = 1.0F) : void
Gizmos 辅助线框
Gizmos是用于在场景视图可视化调试或辅助设置。
所有gizmo绘制需要在脚本的OnDrawGizmos或OnDrawGizmosSelected里函数完成。
OnDrawGizmos在每帧调用。所有在OnDrawGizmos中渲染的gizmos都是可见的。
OnDrawGizmosSelected仅在脚本附加的物体被选择时被调用。
Gizmos.DrawIcon 绘制图标
public static void DrawIcon(Vector3 center, string name, bool allowScaling = true);
绘制的Icon只在Scene场景下可以看到,Game场景下看不到,方便调试
Icon图片文件需要放在Asset/Gizmos文件夹下
public class ExampleClass : MonoBehaviour {
void OnDrawGizmos() {
Gizmos.DrawIcon(transform.position, "Light Gizmo.tiff", true);
}
}
QualitySettings.vSyncCount 垂直同步数
static var vSyncCount : int
可以理解为同步显卡的帧频到显示器刷新率,在Edit-Project Settiong-Quality面板可以设置或者通过代码设置:
//0 FPS大概是1帧,可以通过设置Application.targetFrameRate来设置帧频,其他两值不可以动态修改帧频了
//1 FPS大概是60帧(根据我的显卡)
//2 FPS大概是30帧(根据我的显卡)
QualitySettings.vSyncCount = 1;
什么是FPS?
每秒传输帧数(Frames Per Second)
FPS是图像领域中的定义,是指画面每秒传输帧数,通俗来讲就是指动画或视频的画面数。
FPS”也可以理解为我们常说的“刷新率(单位为Hz)”,例如我们常在CS游戏里说的“FPS值”。
RenderSettings 渲染设置
RenderSettings.ambientLight 环境光
static var ambientLight : Color
RenderSettings.ambientLight = Color.red;//使环境光的颜色为红色
除了用代码控制,还可以通过菜单栏Edit-Render Settingst弹出的Inspector面包中修改
Screen.lockCursor 锁定光标
光标将自动隐藏,居中于视图并且不会离开这个视图。
当你按下Esc时,光标将自动被解锁。
Screen.lockCursor = true;//锁定光标
Transform.LookAt 注视
function LookAt (target : Transform, worldUp : Vector3 = Vector3.up) : void
旋转当前物体使z轴指向target物体
function LookAt (worldPosition : Vector3, worldUp : Vector3 = Vector3.up) : void
旋转当前物体使z轴指向worldPositioin点
Transform.TransformDirection 变换方向
function TransformDirection (direction : Vector3) : Vector3
function TransformDirection (x : float, y : float, z : float) : Vector3
从自身坐标到世界坐标变换方向。
根据自己的坐标系变化为世界坐标系下的坐标。
例如:
public Transform m_cubeTrans;
Vector3 vec = m_cubtTrans.TransformDirection(new Vector3(1,0,0));
相对于方块m_cubeTrans的坐标系下(比如方块有旋转,则其自身的坐标系必然跟世界坐标系不一样),坐标(1,0,0)转换为世界坐标系下坐标为vec
Transform.Translate 平移
参数relativeTo : Space = Space.Self,移动相对自身坐标轴,Space.World 移动相对世界坐标轴
Time.deltaTime 增量时间
单位秒,表示每帧的经过时间。
放在Update()函数中的代码是以帧来执行的.如果我们需要物体的移动以秒来执行.我们需要将物体移动的值乘以Time.deltaTime。
如果你加或减一个每帧改变的值,你应该与Time.deltaTime相乘。当你乘以Time.deltaTime实际表示:每秒移动物体10米,而不是每帧10米。
public class example : MonoBehaviour {
void Update() {
float translation = Time.deltaTime * 10;
transform.Translate(0, 0, translation);
}
}
Time.realtimeSinceStartup 自游戏开始实时时间
以秒计,自游戏开始的实时时间(只读)。
不被Time.timeScale影响
Time.timeScale 时间缩放
影响Unity中和Time.deltaTime和Time.time相关计算的内容,比如做游戏暂停(Time.timeScale=0)的时候其实影响的是利用Time.deltaTime实现的移动。
Update和LateUpdate不受timeScale的影响它们受帧频的影响,FixedUpdate受timeScale的影响,因为FixedUpdate函数是根据时间来的跟帧频无关。
如果想不受timeScale的影响,请使用Time.realtimeSinceStartup
Quaternion.identity 同一性
旋转角度为0,不旋转
transform.rotation = Quaternion.identity;
Quaternion.LookRotation 注视旋转
static function LookRotation (forward : Vector3, upwards : Vector3 = Vector3.up) : Quaternion
参数forward可以理解为一个方向向量,Quaternion四元数用于表示旋转,可以理解为角度,此方法就是通过forward这个方向向量返回朝向目标的一个角度。
关于向量的减法在这里说一下:两个有公共起点的向量相减,结果由减向量的终点指向被减向量的终点。
向量AB减去向量AC等于向量CB(AB-AC=CB,此处AB为被减向量,AC为减向量,这一点不要弄混)
public class example : MonoBehaviour {
public Transform target;
void Update() {
Vector3 relativePos = target.position - transform.position;
Quaternion rotation = Quaternion.LookRotation(relativePos);
transform.rotation = rotation;
}
}
//UnityEngine-Attribute
AddComponentMenu
默认创建的脚本会出现在菜单栏Component/Script下面,为了便于管理,我们可以自定义脚本在菜单栏中的位置。
[AddComponentMenu("MyScript/Test")]
public class Test : MonoBehaviour
{
}
相关文章推荐
- Unity使用protobuf-net进行二进制序列化与反序列化
- Unity客户端设计系列
- Unity3d 5.x 学习笔记(3)—— 发射预制体子弹(Instantiate),点射,扫射,五连发效果
- unity,将camera设为don't clear在android上会显示不正常
- [Unity 5.2] The imported type `UnityEngine.Advertisements.ShowResult' is defined multiple times
- Unity3d 5.x 学习笔记(2)—— 键盘控制物体移动与转向 (move and rotate)
- Unity-Unity3D与IOS交互开发
- unity3d 平滑看向的脚本
- Unity-读取本地txt
- Unity十一个小技巧
- unity脚本矩阵和shader内置矩阵区别联系 思考和梳理
- 【转】Unity中,使用Ngui 的默认字体Arial,显示出错;附带字体替换脚本
- 【Unity Shaders】学习笔记——SurfaceShader(四)用纹理改善漫反射
- Unity3d的热更新和资源下载
- Unity任意方向拉伸物体
- Unity中OnTrigger和OnCollision的触发条件
- Singleton : Implementation in Unity3d C#
- 移植UE4的模型操作到Unity中
- Unity-Animator深入系列---Foot IK
- unity视图切换快捷键