GameObject 游戏对象
GameObject是unity所有实体的基类
gameObject 获取当前脚本所挂载的游戏对象
一般来说,在属性视图中能看到或修改的属性,我们同样可以在脚本中获取并修改
gameObject属性如:
name tag
gameObject.activeSelf 获取当前游戏对象的激活状态 bool类型
gameObject.SetActive 设置游戏对象的激活状态
GameObject.SetActive(true);
激活/停用此游戏对象(如下图所示打钩(true)的时候该游戏对象就属于激活状态,去掉打钩(false)就属于停用状态即游戏对象也就不会显示在你的视野内)
常用的函数
GameObject.GetComponent |
获取组件:
如果这个游戏对象附件了一个type名称类型的组件,
则返回该组件,否则为空。
|
获取游戏对象身上的组件:
hinge=gameObject.GetComponent("HingeJoint")asHingeJoint;
hinge.useSpring=false
|
|
给游戏对象添加指定类型的组件: | Light l = game.AddComponent<Light>(); |
通过tag值查找游戏对象: |
GameObject.FindWithTag(“_cube");
和Find函数相似,不同之处在于该方法是通过标签(tag)值查找
|
GameObject g = GameObject.FindGameObjectWithTag(“TagName”);
GameObject gg = GameObject.FindWithTag(“TagName”);
|
|
通过游戏对象名查找游戏对象:
|
GameObject.Find(“Cube”);
可以查找并获取一个指定的name为Cube的对象。然后进行其他操作。
|
GameObject g = GameObject.Find(“Object Name”):
g.name = “改名”;
|
|
通过Tag值查找多个游戏对象: | GameObject [] gs = GameObject.FindGameObjectWithTag(“Object Name”); |
销毁游戏对象 可加参数2:延迟时间(s)后销毁: | GameObject.Destroy(gameObject,2f); |
transform 组件
每个对象都用的组件,用于储存并操控物体的位置、旋转和缩放。
(每一个Transform可以有一个父级,允许你分层次应用位置、旋转和缩放。可以在Hierarchy面板查看层次关系。他们也支持计数器(enumerator),因此你可以使用循环遍历子对象。)
Transform.Find |
是通过名字查找到子对象并返回他。 |
Transform.Translate |
平移,向莫一个方向进行移动多少的距离;移动变换由x沿着x轴,y沿着y轴,z沿着z轴
transform.Translate(0,0, Time.deltaTime);
transform.Translate(0, Time.deltaTime,0, Space.World);
|
Transform.parent |
通过该方法可以找到父对象,然后可以进行对父对象操作(如改变父对象名字)
_child.gameObject.transform.parent.gameObject.name = "ParentBox";
|
Transform.root |
返回最根部父类进行操作
string name=_child.gameObject.transform.root.gameObject.name;
Debug.Log(name);
|
Transform.position |
在世界坐标系中transform的·位置 |
Transform.rotation |
Unity以四元数储存旋转角度。要旋转一个对象使用Transform.Rotate,使用Transform.eulerAngles以欧拉角设置旋转角度。 |
Transform.localScale |
相对于父级对象进行缩放(局部缩放)
transform.localScale = new Vector3(0.5f,0.5f, 0.5f);
|