外部对变量赋值顺序
Awake>OnEnable>外部赋值>Start
外部对变量赋值顺序
Awake>OnEnable>外部赋值>Start
Start()
调用 同OnEable()但是只会调用一次
时间 Update方法之前,Awake()方法之后调用
作用实例化被Awake()方法加载的UI物体。
Onable()
游戏物体激活时调用或组件被激活调用
多次 作用对象池复活
Awake()
调用一次即初始化的时候调用,之后不再调用。
生命周期函数
事件函数
Debug.Log("");是继承了Mono类的方法
Debug.LogWarning("");
Debug.LogError("");
1、测试
2、检错
Debug.Log("");
变量声明>检视面板>awake>onenable>外部赋值=start
yield return new WaitForSeconds(2);
GameObject myGo = new GameObject(); 直接会出现新建的物体
Instantiate(grisGo);克隆
课时12-09) 生命周期概览
脚本之间Awake调用顺序不确定
无法单独设置position的值的原因
transform.position不能单独给其结构体变量赋值
设置Vector2的值
1.将V2向量变成单位化向量
v2.Normalized();
print("V2向量是:"+v2);//v2向量就变成了单位化向量了,v2的值改变了
2.v2.Set(5,8);
printf("v2向量的值是:"+v2);//v2的只变成了(5.0,8.0)
3.将向量v2转到transform.position中
transform.position=v2;//该游戏物体的位置就改变了
transform的查找方法
当前脚本挂载的游戏对象下的叫Gris的子对象身上的Transform组件是
transform.Find("Gris")
当前脚本的游戏对象下的第一个(0号索引)子对象的Transform引用是transform.Getchild(0);
Gris当前在此父对象同级里所在的索引位置:grisTrans.GetSiblingIndex();
Transform的缩放与正方向
grisTrans.localScale;Gris相对于父对象的变换缩放
Gris的自身坐标正前方(z轴正方向)是grisTrans.forward; 局部坐标系local
Gris的自身坐标正右方(x轴正方向)是grisTrans.right; 局部坐标系local
Gris的自身坐标正上方(y轴正方向)是grisTrans.up; 局部坐标系local
Vector3.forward(世界坐标系)
Gris以欧拉角形式表示的旋转(以度数为单位)
grisTrans.eulerAngles;
Gris的父级transform是
grisTrans.parent;
局部/本地坐标(子级相对于父级的坐标)
Gris相对于父对象的位置坐标和旋转(以四元数旋转和以欧拉角形式旋转)信息是
grisTrans.localposition;
grisTrans.localRotation;
grisTrans.localeulerAngles;
其它的成员变量
grisTrans.name //Gris变换组件所挂载的游戏物体名字
grisTrans.gameobject //Gris变换组件所挂载的游戏物体引用
grisTrans.childCount //Gris的子对象所挂载的transform的个数
grisTrans.position //Gris在世界空间中的空间位置
grisTrans.rotation //Gris以四元数形式表示的旋转
transform组件 变换组件(位置变换 角度变换)
位移 旋转角度 缩放大小
访问本游戏物体的transform组件:transform/this.transform
访问其它游戏物体的组件:public GameObject grisGo;//先访问游戏物体
Debug.Log(grisGo.transform);//再访问该游戏物体身上的组件
Transform grisTrans=grisGo.transform;//创建一个变量将gris游戏物体的transform组件储存起来
再输出该游戏物体组件的其它应用
Debug.Log("Gris变换组件所挂载的游戏物体的名字是:"+grisTrans.name);
通过组件查找组件
1.通过父游戏物体查找子游戏物体的组件
①public GameObject enemygo;//先找到父游戏对象
②enemygo.GetComponentInChildren<BoxCollider>();//获取子游戏对象(一个子游戏对象)的组件。
③enemygo.GetComponentsInChildren<BoxCollider>();//获取子游戏对象(多个子游戏对象)的组件,结果输出的是数组。
获取父对象的方法
enemygo.GetComponentInParent<BoxCollider>();
通过组件查找组件
SpriteRenderer sr=girsGo.GetComponent<SpriteRenderer>();
sr.GetComponent<Transform>();
this.GetComponent<Trensform>();
Component组件 附加到游戏物体的所有内容的基类
monobehaviour继承自behaviour
behaviour继承自Component
Component继承自object(曾曾曾祖父)
字辈有父辈及其以上的功能
组件的获取 (组件必须挂载到该游戏物体上才可以被获取)
No_5Component no_5Component//用一个变量把获取的脚本储存起来= gameobject.GetComponent<No_5Component>();//组件的获取 先获取组件挂载的游戏物体gameobject再通过GetComponent<>()获取该游戏物体挂载的脚本