Unity中核心常用类

MonoBehaviour是所有脚本的基类,使用C#必须显式从MonoBehaviour继承

1、Transform

Transform组件是Unity3D的重点之一,主要用于控制物体的旋转、移动、缩放

position:在世界空间坐标transform的位置。

localPosition:相对于父级的变换的位置。

如果该变换没有父级,那么等同于Transform.position.eulerAngles:世界坐标系中的旋转(欧拉角)。

localEulerAngles:相对于父级的变换旋转角度。

right:世界坐标系中的右方向,世界空间坐标变换的红色轴。也就是x轴。

up:世界坐标系中的上方向,在世界空间坐标变换的绿色轴。也就是y轴。

forward:世界坐标系中的前方向,在世界空间坐标变换的蓝色轴。也就是2轴。

rotation:世界坐标系中的旋转(四元数ocalRotation:相对于父级的变换旋转角度。

localScale:相对于父级的缩放比例。parent:父对象Transform组件。

worldToLocalMatrix:矩阵变换的点从世界坐标转为自身坐标(只读)

localToWorldMatrix:矩阵变换的点从自身坐标转为世界坐标(只读)

root:对象层级关系中的根对象的Transform组件childCount:子对象数量。

ossyScale:全局缩放比例(只读). 

transform.rotation和transform.Rotate的区别:

Rotate()方法是:旋转多少度。在原有的基础上累加,即旋转了多少角度

rotation属性是:旋转到某个角度,就是是在update中每帧都执行。但每次旋转到的角度都是5,所以是旋转到5度。

比如你只想让他旋转到多少, 用rotation; 假如想让他一直转,可以用Rotate

rotation直接改变了数值, 以达到旋转效果

Rotate应用一个的旋转角度每秒1度慢慢的旋转物体

2、Vector3

向量(Vector3)

既有大小又有方向的量叫做向量。在空间中,向量用一段有方向的线段来表示

back:Shorthand for writing Vector3(0, 0.-1).'写Vector3(0, 0,-1)的简码

down:Shorthand for witing Vector3(0, -1, 0).写Vector3(0,-1,0)的简码

forward:Shorthand for witing Vector3(0, 0, 1.写Vector3(0, 0, 1)的简码,也就是向2轴

left:Shorthand for writing Vector3-1, 0, 0).1写vector3(-1, 0, 0)的简码

one:shrtand for witing Vector3(, 1,1).写Vector3(1, 1, 1)的简码.

right:Shorthan for witing Vecto(1 0).写Vector3(1,0, 0)的简码,也就是向x轴. 

up:shorthand for witing Vector30,10.写Vector3(0, 1. 0)的简码,也就是向y轴

zero:Shorthand for writin Vector30, 0,0)写vector3(0, 0,0)的简码 

3、GameObject

GameObject和gameObject的区别:

    GameObject是游戏对象类的基类

    gameObject是脚本挂载的对象

4、Time

Time.time:表示从游戏开始到现在的时间,会随着游戏的暂停而停止计算。

Time.deltaTime:表示从上一帧到当前帧的时间,以秒为单位。

Time.timeScale:时间缩放,默认值为1,若设置<1,表示时间减慢,若设置>1,表示时间加快,可以用来加速和减速游戏,非常有用

5、克隆游戏对象

//在预设体的位置克隆游戏对象

GameObject go1=Instantiate(cube);

//在固定位置克隆游戏对象

//Quaternion.identity 游戏对象不旋转:Quaternion(0,0,0,0)

GameObject go2 =Instantiate(cube,new Vector3(0,0,5),Quaternion.identity);

6、销毁游戏对象

Destroy(go1);    //直接销毁对象go1

Destroy(go2,3);   //停3秒后销毁对象go2

7、查找游戏对象

通过名称来查找游戏对象

GameObject  cube1=GameObject.Find("Player");

GameObject  cube2=GameObject.FindWithTag("Player");

8、添加、获取组件

//1、把Move这个脚本加到cube这个游戏对象上

cube.AddComponent("Move");

//2、给游戏物体添加刚体

cube.AddComponent("Rigidbody");

//3、给游戏物体添加球体碰撞器

cube.AddComponent("BoxCollider");

//1、获取脚本组件Move

Move m=cube.GetComponent<Move>();

//2、获取刚体组件

Rigidbody r=cube.GetComponent<Rigidbody>();

9、Random

float a=Random.value;                //返回0.0(包括)到1.0(包括)之间的数。
int b=Random.Range(0,100) ;         //包括最小但不包括最大

float c=Random.Range(0.0f,5.5f);    //包括最大和最小

10、Input

1.鼠标事件

GetMouseButton(0):按下鼠标左键不动,程序会一直运行,松开左键程序停止运行

GetMouseButton(2):按下鼠标中键不动,程序会一直运行,松开中键程序停止运行

GetMouseButton(1):按下鼠标右键不动,程序会一直运行,松开右键程序停止运行

GetMouseButtonDown(0):按下鼠标左键时,程序运行一次

GetMouseButtonDown(1):按下鼠标右键时,程序运行一次

GetMouseButtonUp(2):按下鼠标中键时,程序不运行,松开中键时,程序运行一次

 2.键盘事件

GetKey     当通过名称指定的按键被用户按住时返回true

GetKeyDown   当用户按下指定名称的按键时的那一帧返回true

GetKeyUp    在用户释放给定名字的按键的那一帧返回true

GetAxis("Horizontal")和GetAxis("Vertical")    水平轴和垂直轴

3.自定义按钮

GetButton   根据按钮名称返回true当对应的虚拟按钮被按住时

GetButtonDown  在给定名称的虚拟按钮被按下的那一帧返回true

GetButtonUp    在用户释放指定名称的虚拟按钮时返回true

11、协程

协同程序,即将主程程序运行时同时开启另一段逻辑处理来协同当前程序的执行。换句话说,开启协同程序就是开启一个线程。   

使用StartCoroutine(string methodName)可以开启一个线程。

Yield语句是一种特殊类型的Return(返回)语句,它可以确保函数在下一次被执行时,不是从头开始,而是从Yield语句处开始。

协程其实就是一个IEnumerator(迭代器)。迭代器方法运行到 yield return 语句时,会返回一个表达式并保留当前在代码中的位置。 当下次调用迭代器函数时执行从该位置重新启动

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值