当前位置:网站首页>Unity中几个重要类

Unity中几个重要类

2022-07-06 04:01:00 A plum in fall

前言

本博客列举了Unity中较为重要的类中的一些方法,并非全部,详见API文档


一、GameObject类

1. Find()

  1. 通过游戏对象名字找查找指定的游戏对象
  2. Find()查找时,只要是当前场景下面的游戏对象,默认都可以查找到。且不管是将查找的脚本挂载到哪个对象上来,都是可以找到的。含有子父级别关系的,也可以查找到。
  3. 同名的游戏对象,可以查找到几个?
    答:只会查找一个

2. FindWithTag( 标签名 )

  1. 只会找 一个符合标签名的对象
  2. 如果没有,null
  3. 如果没有提前添加指定的标签,错误提示:**** is not defined

3. FindGameObejctsWithTag()

  1. 通过标签名查找多个符合名字的游戏对象
  2. 返回的是GameObject类型的数组
  3. 可对返回的数组进行遍历等操作
  4. 获取数组长度为:调用 Length

4. 创建游戏对象

5. SetActive( true );

6. GetComponent(typeOf(Transform))

  1. 建议使用泛型 GetComponent< >

二、Transform类

本类中的属性

1. parent

获取当前游戏对象的父对象

2. root

获取当前游戏对象的顶级别

3. localPosition

获取局部坐标系位置

4. GetInstanceID

获取当前游戏对象的id(唯一的)

5. childCount

获取子对象的个数

本类中的方法

1. GetChild( int index )

获取指定索引值的GameObject

2. IsChildOf ()

判断是否是指定对象的子对象

3. Find()

查找对象

4. Translate()

按指定方向和位置进行移动

i. (x , y , z)
ii. Vector3.left|right|up|down|forward|back

如:向左移动1个单元
transform.Translate(-1,0 , 0);
transform.Translate(Vector3.left);

transform.Translate()函数中,前一个变量是物体的移动速度,这里的速度是一个矢量,既包含大小写包含方向,后一个变量是相对坐标系,这里的相对坐标系有两个值,一个是世界坐标,一个是自身坐标,如果第一个坐标不填写的话,默认为自身坐标系。
注:Space.self | world

transform.Translate(Vector3.up * Time.deltaTime, Space.Self);

5. Rotate()

按指定角度进行旋转

Rotate(参数1,参数2)

使立方体旋转,以Y轴为中心点进行正方向旋转。
transform.Rotate(Vector3.up);
transform.Rotate(Vector3.up * Time.deltaTime);  
transform.Rotate(Vector3.up * Time.deltaTime * speed);
使立方体旋转,以X轴为中心点进行旋转。
transform.Rotate(Time.deltaTime, 0, 0);
transform.Rotate(Time.deltaTime * speed, 0, 0);

6.LookAt()

使当前对象朝向目标位置

继承父类得来的Component

1. 属性:name, gameObject, tag, transform…

2. GetComponent<>()

3. GetComponentInChildren<> ()

4. Instantiate

5. Instantiate ( 原对象 )

Instantiate(原对象,新对象的位置,新对象的角度)
该方法是Unity中的Object类提供的方法
用于产生指定游戏对象的复本
当方法执行结束后,会将对象的复本作为 Object 类型返回

该方法一般写在 Update()方法中,一般是在具体条件,否则会一直执行该方法,卡顿。如:单击鼠标左键或键盘某个按键,才会产生复本…

注:如果没有通过第二个参数和第三个参数指定新对象的位置和旋转角度,那么默认会在原物体一样的位置产生一个新的对象(新对象会将原对象覆盖 )

三、Random类

Random类提供的常用方法:伪随机数

1. 种子

2. Range()

Random.Range (min, max):产生的是min到max范围内随机数包含min,但是不包含max

3. 举例

贪吃蛇

四、Time类

1. deltaTime

float返回值
距离上一帧执行耗用时间(小数)

两种使用场景:
1)旋转或移动,速度比较快,*deltaTime控制速度
2)Update()帧率造成的时间不匹配问题,
FixedUpdate()— 物体(刚体)
解决方法:
transform.Translate(Vector3.up * Time.deltaTime)

2. time

可以放在update里面计算从开始到此刻的时间

3. timeScale

暂停

五、Mathf 类

提供了一系列的方法和属性进行数学操作

1. 求绝对值 ABS()

2. 求最大数或最小数 MAX() MIN()

3. 开平方 : Sqrt()

4. 四舍五入

Round()

返回舍入为最近整数的 /f/。
9.1四舍五入为9
9.5四舍五入10
-9.1四舍五入-9
-9.4四舍五入-9
-9.5四舍五入-10

Ceil()

返回大于或等于 f 的最小整数。

Floor()

返回小于或等于 f 的最大整数。
如果这个数是正数,四舍五入后:整数部分
如果这个数是负数,四舍五入后:减1,如:-9.1结果:-10

5. 角度与弧度值(常量值)

Deg2Rad

1角度等于多少弧度

Rad2Deg

1弧度等于多少角度

6. 正无穷大、负无穷大(常量值)

Infinity

print出来是Infinity

NegativeInfinity

print出来是-Infinity

7. 三角函数:Sin(),Cos(),Tan()…

8. 幂次方与指数:Log()、Log10()、Pow()

9. Lerp()

在 a 与 b 之间按 t 进行线性插值。

10. SmoothDamp()

随时间推移将一个值逐渐改变为所需目标。

11. MoveTowards()

将值 current 向 target 靠近。

12. PingPong()

PingPong 返回一个值,该值将在值 0 与 length 之间递增和递减。类型乒乓球。

六、Input 类

鼠标输入

Input类提供的用于处理鼠标输入的相关属性和方法

1. mousePostion

获取鼠标在当前屏幕上的具体坐标
是一个二维坐标(Z轴始终为0)

坐标与当前屏幕像素有关
如果鼠标在当前屏幕的左下角,则为(0,0)
如果鼠标在屏幕的右上角,则为(Screen.Width, Screen.Height)

注:当前屏幕指的是当前Game窗口

2. GetMouseButtonDown(按键码)

当指定的鼠标按键码被按下,返回true
否则,返回false
如:

if(Input.GetButtonDown(2))
{
    
   print(Random.Range(0,10);   //[0,10)
}
else
{
    
   print(Random,Range(-10,0))  ///[-10,0)
}

鼠标左键:0
鼠标右键:1
鼠标中间:2

判断当前有没有按下鼠标中间键,如果按下,返回[0,10)之间的随机数,否则返回[-10,0)

3. GetMouseButtonUp(按键码)

当指定的鼠标按键码被按下,返回true
否则,返回false

一般在执行该方法前,先执行按下操作,然后再抬起

4. GetMouseButton(按键码)

当指定的鼠标一直按着,返回true
否则,返回false

5. GetAxis(“Mouse X”)

方法返回float类型的数据

获取鼠标在水平方向上移动的距离

当鼠标在水平方向上正半轴移动时,得到一个正数

当鼠标在水平方向上负半轴移动时,得到一个负数

6. GetAxis(“Mouse Y”)

方法返回float类型的数据

获取鼠标在垂直方向上移动的距离

当鼠标在垂直方向上正半轴移动时,得到一个正数

当鼠标在垂直方向上负半轴移动时,得到一个负数

键盘输入

Input

1. GetKeyDown(键盘按键)

指定某键盘按键被按下时,返回true,否则,返回false

2. GetKeyUp(键盘按键)

指定某键盘按键被抬起时,返回true,否则,返回false

3. GetKey(键盘按键)

指定某键盘按键被一直按着,返回true,否则,返回false

注释:键盘按键的按键码
i. “*****”
如"a"
ii. KeyCode
如KeyCode.A

4. GetAxis(“Horizontal”)

用于判断按了键盘上的那个水平方向键

5. GetAxis(“Vertical”)

用于判断按了键盘上的哪个垂直方向键

如果方法返回 0到1之间的正数,表示按了向上方向

如果方法返回 0到-1之间的负数,表示按了向下方向

返回-1到1之间的小数


参考来源

官方文档:API文档
参考视频:达内教育Unity基础
参考资料:网友的笔记

原网站

版权声明
本文为[A plum in fall]所创,转载请带上原文链接,感谢
https://blog.csdn.net/HelloPlum/article/details/125523418