【Unity学习笔记】Component、Transform、GameObject、Object四个重要类20.08.08

调试

1、控制台调试 Debug.Log(变量);print(变量);//用完一定记得删掉!!!
2、定义共有变量,程序运行后在检测面板查看数据//可观察数据的变化规律啥的
VS调试:
单帧调试: 启动调试–>>运行场景–>>暂停游戏–>>加断点–>>单帧执行–>>结束调试
调试过程中,输入代码:1、右键–快速监视 2、也可以查看“即时窗口”

组件(Component)的认识

1、组件的定义

组件 是在游戏对象(Game Object)中的实现某些功能的集合。
无论是模型、 GUI、灯光还是摄像机,所有游戏对象本质上都是一个空对象挂载了不同类别的组件,从而让该游戏对象拥有不同的功能。
对于一个空游戏对象来说,如果为其添加一个摄像机组件,那么该对象就是一架摄像机;如果为其添加了网格过滤(Mesh Filter)组件,那么该对象就是一个模型;如果为其添加了灯光组件,该对象就是一盏灯光。
游戏对象(GameObject)上可以包含多个组件(Component)。每个游戏对象都有一个Transform Component(创建游戏对象时就默认有了)。我们也可以自行添加组件,添加不同的组件可以使游戏对象有各种功能。
脚本在Unity中也是一种组件。

2、分清组件(游戏对象)和变量(脚本成员)的区别 [来源]

在Unity中组件其实就是一个类的实例,它属于游戏对象,一般可以直接添加在游戏对象上的功能都是组件,他们显示在Inspector属性查看器窗口上。
而很多组件在脚本中都有对应的脚本变量来代替,想通过脚本代码来时获得对应组件及其属性,就可以通过这些变量名来获得。
所以在脚本中通过访问组件和访问变量来获取组件的方法是不一样的。
首先最大的区别,就是变量都是小写,而组件开头是大写。
例如:

组件名称 变量名称
Transform transform
Rigidbody rigidbody
Animation animation
Render render

等等。但是也有例外,比如Camera组件和Light组件,他们的变量名称和组件名称是一样的,因为他们的变量只对摄像机对象和光源对象有效。

组件和变量在脚本中的不同用法

如果通过访问变量就可以直接更改其属性,但是要通过组件进行修改,必须先调用GetComponent<组件名称>()的方法。
例如,同样是让物体进行位移,就有两种方式:

public class BNUComponent : MonoBehaviour {
    void Update(){
        transform.Translate(1, 0, 0);			//直接修改对象transform变量的属性
        GetComponent<Transform>().Translate(1, 0, 0);    /*先访问对象的Transform组件,
                                                           再通过Translate方法进行变化*/
	}
}

常用API

Unity核心类图

在这里插入图片描述

Component

•常用属性
tag、gameObject、transform、colliderrenderer……
•常用方法
GetComponent、GetComponentInChildren、GetComponentInParent……

猜你喜欢

转载自blog.csdn.net/weixin_43502713/article/details/107879414
今日推荐