您的位置:首页 > 移动开发 > Unity3D

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

{

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: