29607人加入学习
(126人评价)
Unity API常用方法和类详细讲解(基于Unity5.6)
价格 免费
承诺服务

1.Project Setting 下的Product可以改发布出来的游戏名字

2.UnityEditor.EditorApplication.isPlaying=false;

在编辑器模式下停止运行游戏

[展开全文]

Application中的常用静态变量和静态方法

public class ApplicationCS : MonoBehaviour {

	// Use this for initialization
	void Start () {
		//Application在应用中用,EditorApplication在编辑器下用
		print(Application.identifier);//标识
		print(Application.companyName);//公司名
		print(Application.productName);//项目名
		print(Application.installerName);//安装名
		print(Application.installMode);
		print(Application.isEditor);
		print(Application.isFocused);//是否再焦点
		print(Application.isMobilePlatform);//是否为移动平台
		print(Application.isPlaying);//是否再运行
		print(Application.platform);//平台
		print(Application.unityVersion);//unity版本
		print(Application.version);//游戏版本
		print(Application.runInBackground);//是否可以在后台运行

		Application.Quit();//只有build出来之后,才能用它来退出游戏
		Application.OpenURL("www.sikiede.com");//打开网址
		//Application.CaptureScreenshot("游戏截图");//屏幕截图
	}
	
	// Update is called once per frame
	void Update () {
		//在编辑器模式下退出游戏
		if (Input.GetKeyDown(KeyCode.Space))
		{
			UnityEditor.EditorApplication.isPlaying = false;
		}
		
	}
}

 

[展开全文]

Application.

identifier

companyName

ProductName

installMode

isEditor

isFocused

isMobilePlatform

isPlaying

isWebPlayer

platform

unityVersion

version

runInBackGround

Quit()

OpenURL()

CaptureScreenShot

[展开全文]

编译器下退出游戏,UnityEditor.EditorApplication.IsPlaying=false;

[展开全文]

Application 常用静态变量和方法

和plyaerSetting相关

Application.CompanyName 公司名字,

App.  ProductName 产品名字

App.identifier  包名,包的一个路径。Android

App.installerName安装名字, 就是ProductName

App.installMode 安装模式当前运行在哪里运行折的。Store.在线商店,Developer Build,build出来的。Enterprise企业发布,Editor在编辑器模式运行的。

App.isEditor 当前是否在编辑器下

App.IsFocused当前是否处于焦点。

App.IsMobilePlatform 当前是否在移动平台运行

App.isPlaying 是否正在播放。

App.platform 返回当前运行的平台。

App.InstanllerName 打包名

App.runInBackground 是否可以在后台运行。可以在windows下运行。

unityVersion unity版本

Version 当前正在开发的版本

bundle identifier 不可以重复。

上面为属性,接下来开始方法

Application.OpenURL

打开一个网站

Application.Quit退出游戏

Applicatoin.CatureScreenshot("完整路径+图片名") 屏幕截图

WebPalyer网页上。

如何在编辑器下退出 。 Application.IsPlaying = false  这个没用了。

UnityEditor.EditorApplication.isPlaying = false.

[展开全文]

静态变量

Application.

Application.Company Name:公司名;

Application.Product Name:产品名字;

Application.installMode:安装模式;

Application.isEditor:判断是否在编辑器模式下运行;

Application.isFocused:是否处于焦点;

Application.isMobilePlatform:是否在移动平台上运行;

Application.isPlaying:是否正在播放;

Application.platform:判断当前的运行环境;

Application.runInBackground:设置是否在后台运行;

静态方法

Application.OpenURL():打开网站;

Application.Quit():退出;编辑器模式下无法退出

Application.CaptureScreenshot()游戏截图

 UnityEditor.EditorApplication.isPlaying = false;编辑器模式下退出;

 

[展开全文]

静态变量

companyName:公司名

identifier:包名

installName:

是否是焦点

是否正在播放

判断当前的运行环境

安装包的名字

设置后台运行

判断当前unity版本

产品名字

公司名

 

打开一个网站

退出游戏

截图

[展开全文]

1.创建游戏物体f的三种方法
new GameObject();括号里可以添加想要创建的物体类型例如
new GameObject("Cube");创建出一个正方体
GameObject.Instantiate();
实例化Prefabs或实例化游戏物体
GameObject.CreatePrimitive();
创建原始图形如:.GameObject.CreatePrimitive(PrimitiveType.Cube);
2.通过代码给游戏物体添加组件
 private GameObject object;
object.AddComponent<Rigidbody>();
通过代码给游戏物体j添加脚本
object.AddComponent<脚本名>();
3.GameObject游戏物体的常用类
GameObject.activeInHierarchy 物体是否处于激活状态(包括自身及子物体)
4.UnityEngine下Object的静态方法
Object.Destroy:
Destroy(gameobject,time);
Object.DontDestroyOnLoad:
DontDestroyOnLoad(transform.gameObject);(在进行场景之间转换时不会被销毁,会被带到下一个场景中)
Object.FindObjectOfType:
Object   a =FindObjectOfType(typeof(组件名))
Rigidbody  a=FindObjectOfType<Rigidbody>();
只返回第一个被检测到含有此组件的物体。不查找未激活的游戏物体
Object.FindObjectsOfType:
Object   a =FindObjectsOfType(typeof(组件名))
Rigidbody a=FindObjectsOfType<Rigidbody>();
将检测到的所有的含有此组件的物体都存在数组中。不查找未激活的游戏物体
5.查找方法
Find(比较耗费性能)
FindGameObjectsWithTag返回所有是次标签的物体返回数组
FindWithTag只返回第一个检测到的物体。
6.游戏物体间消息的发送和接收
GameObject.BroadcastMessage();包括其自身及其子物体
GameObject.SendMessage(); 不包括子物体
GameObject.SendMessageUpwards();包括其自身及其父物体
7.得到组件的各种方法函数

GetComponent;只会得到在游戏物体身上的第一个检测到的组件

GetComponent;会得到物体上所有的组件

GetComponentInChildren;会得到其自身及其子物体身上第一个检测到的相应的组件

GetComponentInParent;会得到其自身及其父物体身上第一个检测到的相应的组件

GetComponentsInChildren;会得到其自身及其子物体身上所有检测到的相应的组件

GetComponentsInParent;会得到其自身及其父物体身上所有检测到的相应的组件

8.Public Functions

Invoke;

Public void Invoke(string methodName,float time );可延时调用方法

CancelInvoke;取消所有调用的方法(仅适用于当前脚本,不影响其他脚本中相同方法的调用)

InvokeRepeating;重复调用方法

IsInvoking;判断方法是否正在被调用

协程:

1.返回值是IEnumerator

2.返回参数时使用yield return null/0。

3协程方法的调用:使用StartCoroutine(需要调用的协程方法的名字);

4暂停yield return new WaitForSeconds(需要暂停的时间);

例如:

IEnumerator Method(){

内容;

yied return null;

}

StartCoroutine();开启协程

StopCoroutine();关闭协程

StopAllCoroutine();

9.与鼠标相关事件函数OnMouseXXX

OnMouseDown();当鼠标按下时触发

OnMouseUp();当鼠标抬起时触发

OnMouseDrag();当鼠标已经按下但没有抬起时触发

OnMouseEnter();当鼠标在游戏物体身上但没有按下鼠标时触发

ONMouseExit();当鼠标离开游戏物体时触发

OnMouseOver();当鼠标在游戏物体身上时无论是鼠标按下或没有按下只要鼠标在游戏物体身上就触发。

10.Mathf里面的方法

Mathf.PI 圆周率

Mathf.Deg2Rad 将度数转变为弧度

Mathf.Rad2Deg 将弧度转成度数

Mathf.Epsilon 无限小的数

Mathf.Infinity 无限大的数

Mathf.Abs 绝对值

Mathf.Ceil 向上取整

如Mathf.Ceil(10);结果为10.

Mathf.Ceil(10.2f);结果为11.

Mathf.Ceil(-10);结果为-10.

Mathf.Ceil(-10.2f);结果为-10.

Mathf.Floor();向下取整。

Mathf.Clamp(float value,float min,flaot max); valur为自己定义的数值。如果value小于min则将value改为min,如果value大于min且小于max则value为自身值,如果value大于max则将value改为max。

Mathf.ClosesPowerOfTwo(int value);取离value最近的2的多次方

如Mathf.ClosesPowerOfTwo(3);返回4

Mathf.ClosesPowerOfTwo(7);返回8

Mathf.DeltaAngle();返回角度之间的最小夹角。如721°-360°=361°,其返回1°。

Mathf.Exp(float power);代表e的power次方

Mathf.Max(float a,float b);比较两个数中的最大值(float可换为int)

Mathf.Max(float[] value);比较数组中的最大值(float可换为int)

Mathf.Min(float a,float b);比较两个数中的最小值(float可换为int)

Mathf.Min(float[] value)比较数组中的最小值(float可换为int

Mathf.Pow(float a,float b);a的b次方。

Mathf.Sqrt();开平方根。

Mathf.Lerp(float a,float b,float t);插值运算 

t为a到b之间的距离的比率,如t=0.5时,返回值为(a+b)*0.5,t为0时,返回值为a,t为1时返回值为b;

Mathf.LerpAngle();角度的差值运算

 Mathf.MoveToWards(float a,float b,float t);

a初始 值,b目标值,t从a到b每帧所移动的距离。

Mathf.PingPong(float a,float b);返回值在0到b之间0为最小值,b为最大值,返回值随着a的增大在0到b之间往返。

11.Input

GetTouch()屏幕触摸

Input.anyKeyDown();按下任何键都会触发,包括鼠标。

Input.mousePosition;鼠标在键盘上的实时坐标。

12.Vector2

magnitude;返回向量的长度。根号下X的平方加Y的平方。

normalized;将长度不为一的向量在方向不变的情况下,将长度取一。不改变向量本身。 

sqrMagnitude;X的平方加Y的平方不开根号,一般用于较为节省性能的比较两个向量的长度

向量是结构体,如要修改,需整体修改。如

transform.position=new vector3(3,3,3);

如想要只修改物体的X坐标,直接调用transform.position.x是错误的。需:

Vector3 pos=transform.position;

pos.x=10;

transform.position=pos;

即可。

Vector2.Equals;判断两个向量是否相等。相等返回true,不相等返回flase.

Vector2.Normalize();将向量单位化,改变向量。

Vector2.Angle();用来取得两个向量的夹角。

Vector2.Distance(Vector2 a,Vector2 b);返回a,b两个点的距离。

Vector2.Dot()点乘。

Vector2.MoveTowards(Vector2 a,Vector2 b,float c);物体从a移动到b,c是速度。

13.Vector3

Vector3.MoveTowards();作用与Vector2的相同,用于移动。

Vector3.Normalize();单位化向量。

Vector3.Project(Vector3 a,Vector3 b);返回值为a在b身上的投影。

Vector3.Reflect(Vector3 a,Vector3 b);反射向量,a为入射光,为镜子的方向,返回值为出射光

Vector3.Slerp(Vector3 a,Vector3 b,Vector3 c);插值,由a转到b,c为速度。

14.Random随机数

Random.InitState();随机数的种子,相同的种子,随机数生成序列相同。

1.创建游戏物体f的三种方法
new GameObject();括号里可以添加想要创建的物体类型例如
new GameObject("Cube");创建出一个正方体
GameObject.Instantiate();
实例化Prefabs或实例化游戏物体
GameObject.CreatePrimitive();
创建原始图形如:.GameObject.CreatePrimitive(PrimitiveType.Cube);
2.通过代码给游戏物体添加组件
 private GameObject object;
object.AddComponent<Rigidbody>();
通过代码给游戏物体j添加脚本
object.AddComponent<脚本名>();
3.GameObject游戏物体的常用类
GameObject.activeInHierarchy 物体是否处于激活状态(包括自身及子物体)
4.UnityEngine下Object的静态方法
Object.Destroy:
Destroy(gameobject,time);
Object.DontDestroyOnLoad:
DontDestroyOnLoad(transform.gameObject);(在进行场景之间转换时不会被销毁,会被带到下一个场景中)
Object.FindObjectOfType:
Object   a =FindObjectOfType(typeof(组件名))
Rigidbody  a=FindObjectOfType<Rigidbody>();
只返回第一个被检测到含有此组件的物体。不查找未激活的游戏物体
Object.FindObjectsOfType:
Object   a =FindObjectsOfType(typeof(组件名))
Rigidbody a=FindObjectsOfType<Rigidbody>();
将检测到的所有的含有此组件的物体都存在数组中。不查找未激活的游戏物体
5.查找方法
Find(比较耗费性能)
FindGameObjectsWithTag返回所有是次标签的物体返回数组
FindWithTag只返回第一个检测到的物体。
6.游戏物体间消息的发送和接收
GameObject.BroadcastMessage();包括其自身及其子物体
GameObject.SendMessage(); 不包括子物体
GameObject.SendMessageUpwards();包括其自身及其父物体
7.得到组件的各种方法函数

GetComponent;只会得到在游戏物体身上的第一个检测到的组件

GetComponent;会得到物体上所有的组件

GetComponentInChildren;会得到其自身及其子物体身上第一个检测到的相应的组件

GetComponentInParent;会得到其自身及其父物体身上第一个检测到的相应的组件

GetComponentsInChildren;会得到其自身及其子物体身上所有检测到的相应的组件

GetComponentsInParent;会得到其自身及其父物体身上所有检测到的相应的组件

8.Public Functions

Invoke;

Public void Invoke(string methodName,float time );可延时调用方法

CancelInvoke;取消所有调用的方法(仅适用于当前脚本,不影响其他脚本中相同方法的调用)

InvokeRepeating;重复调用方法

IsInvoking;判断方法是否正在被调用

协程:

1.返回值是IEnumerator

2.返回参数时使用yield return null/0。

3协程方法的调用:使用StartCoroutine(需要调用的协程方法的名字);

4暂停yield return new WaitForSeconds(需要暂停的时间);

例如:

IEnumerator Method(){

内容;

yied return null;

}

StartCoroutine();开启协程

StopCoroutine();关闭协程

StopAllCoroutine();

9.与鼠标相关事件函数OnMouseXXX

OnMouseDown();当鼠标按下时触发

OnMouseUp();当鼠标抬起时触发

OnMouseDrag();当鼠标已经按下但没有抬起时触发

OnMouseEnter();当鼠标在游戏物体身上但没有按下鼠标时触发

ONMouseExit();当鼠标离开游戏物体时触发

OnMouseOver();当鼠标在游戏物体身上时无论是鼠标按下或没有按下只要鼠标在游戏物体身上就触发。

10.Mathf里面的方法

Mathf.PI 圆周率

Mathf.Deg2Rad 将度数转变为弧度

Mathf.Rad2Deg 将弧度转成度数

Mathf.Epsilon 无限小的数

Mathf.Infinity 无限大的数

Mathf.Abs 绝对值

Mathf.Ceil 向上取整

如Mathf.Ceil(10);结果为10.

Mathf.Ceil(10.2f);结果为11.

Mathf.Ceil(-10);结果为-10.

Mathf.Ceil(-10.2f);结果为-10.

Mathf.Floor();向下取整。

Mathf.Clamp(float value,float min,flaot max); valur为自己定义的数值。如果value小于min则将value改为min,如果value大于min且小于max则value为自身值,如果value大于max则将value改为max。

Mathf.ClosesPowerOfTwo(int value);取离value最近的2的多次方

如Mathf.ClosesPowerOfTwo(3);返回4

Mathf.ClosesPowerOfTwo(7);返回8

Mathf.DeltaAngle();返回角度之间的最小夹角。如721°-360°=361°,其返回1°。

Mathf.Exp(float power);代表e的power次方

Mathf.Max(float a,float b);比较两个数中的最大值(float可换为int)

Mathf.Max(float[] value);比较数组中的最大值(float可换为int)

Mathf.Min(float a,float b);比较两个数中的最小值(float可换为int)

Mathf.Min(float[] value)比较数组中的最小值(float可换为int

Mathf.Pow(float a,float b);a的b次方。

Mathf.Sqrt();开平方根。

Mathf.Lerp(float a,float b,float t);插值运算 

t为a到b之间的距离的比率,如t=0.5时,返回值为(a+b)*0.5,t为0时,返回值为a,t为1时返回值为b;

Mathf.LerpAngle();角度的差值运算

 Mathf.MoveToWards(float a,float b,float t);

a初始 值,b目标值,t从a到b每帧所移动的距离。

Mathf.PingPong(float a,float b);返回值在0到b之间0为最小值,b为最大值,返回值随着a的增大在0到b之间往返。

11.Input

GetTouch()屏幕触摸

Input.anyKeyDown();按下任何键都会触发,包括鼠标。

Input.mousePosition;鼠标在键盘上的实时坐标。

12.Vector2

magnitude;返回向量的长度。根号下X的平方加Y的平方。

normalized;将长度不为一的向量在方向不变的情况下,将长度取一。不改变向量本身。 

sqrMagnitude;X的平方加Y的平方不开根号,一般用于较为节省性能的比较两个向量的长度

向量是结构体,如要修改,需整体修改。如

transform.position=new vector3(3,3,3);

如想要只修改物体的X坐标,直接调用transform.position.x是错误的。需:

Vector3 pos=transform.position;

pos.x=10;

transform.position=pos;

即可。

Vector2.Equals;判断两个向量是否相等。相等返回true,不相等返回flase.

Vector2.Normalize();将向量单位化,改变向量。

Vector2.Angle();用来取得两个向量的夹角。

Vector2.Distance(Vector2 a,Vector2 b);返回a,b两个点的距离。

Vector2.Dot()点乘。

Vector2.MoveTowards(Vector2 a,Vector2 b,float c);物体从a移动到b,c是速度。

13.Vector3

Vector3.MoveTowards();作用与Vector2的相同,用于移动。

Vector3.Normalize();单位化向量。

Vector3.Project(Vector3 a,Vector3 b);返回值为a在b身上的投影。

Vector3.Reflect(Vector3 a,Vector3 b);反射向量,a为入射光,为镜子的方向,返回值为出射光

Vector3.Slerp(Vector3 a,Vector3 b,Vector3 c);插值,由a转到b,c为速度。

14.Random随机数

Random.InitState();随机数的种子,相同的种子,随机数生成序列相同。

Random.value();随机生成从0到1的值包括0和1。

Random.State();获取随机数的状态(种子)

Random.insideUnitCircle()*x在半径为x米的圆内随机生成。返回二维向量。

Random.insideUnitSphere();*x在半径为x的球体内生成为三位向量

15.四元数与欧拉角

当物体旋转时,当其绕x轴或z轴旋转时是绕其自身x轴和z轴旋转,当其绕y轴旋转时,是绕世界坐标的y轴旋转。

Quaternion.rotation;四元数。

Quaternion.eulerAngles;将一个四元数转变成欧拉角。也可直接设置物体的旋转。

 Quaternion.Euler将欧拉角转换为四元数。

Quaternion.LookRotation();将物体的朝向改为沿规定的向量,通常用来面向敌人。

Quaternion.Slerp();插值

Quaternion.Lerp();插值

16.Rigidbod刚体

Rigidbody.centerOfMass();取得物体的重心。

Rigidbody.position();可通过刚体修改物体的位置,且这种方法运行更快,推荐使用。

Rigidbody.MovePosition()控制物体平滑地运动(远距离使用)

Rigidbody.rotation();可通过刚体控制物体的旋转,且这种方法更快,推荐使用。

Rigidbody.MoveRotation();更加平滑的旋转,(长时间大角度连续旋转使用)。

Rigidbody.AddForce(a*b);施加力。a为想要物体运动大方向,为向量,b为施加在物体身上的力。

17.Camera

Camera.main();

Camera.ScreenPointToRay();射线检测;

18.Application

 Application.datapath工程所在路径 

 Application.streamingAssetsPath可通过文件流来读取数据(不会被打包)

 Application.persistentDataPath

 Application.temporaryCachePath临时缓冲数据

  Application.identifier标识

 Application.companyName公司名

 Application.productName产品名(安装完成显示的名字)

 Application.installerName安装包的名字

 Application.installMode安装模式

 Application.isEditor用来判断是否在编辑器模式下运行。

Application.isFocused用来判断是否处于焦点

 Application.isMobilePlatform用来判断当前是否处于移动平台上运行

 Application.isPlaying用来判断是否正在运行(在编辑器模式下)

 Application.isWebPlayer

 Application.platform用来判断当前运行的环境

 Application.unityVersion用来得到开发应用的版本

 Application.runInBackground用来设置应用是否可以在后台运行

 Application.Quit();退出(编辑器模式下无效)

 Application.OpenURT();用来打开网站

 Application.CaptureScreeenshot("a");取得截图a为截图的名字

System.DateTime.Now可以获取当前时间

[展开全文]

Use ScreenCapture.CaptureScreenshot instead of obsolete Application.CaptureScreenshot.

[展开全文]

授课教师

SiKi学院老师

课程特色

图文(1)
下载资料(2)
视频(71)