Unity GameObject

时间:2024-10-06 15:37:14

GameObject 游戏对象

GameObject是unity所有实体的基类
gameObject 获取当前脚本所挂载的游戏对象
一般来说,在属性视图中能看到或修改的属性,我们同样可以在脚本中获取并修改
gameObject属性如:
  name   tag  
  gameObject.activeSelf      获取当前游戏对象的激活状态 bool类型
  gameObject.SetActive      设置游戏对象的激活状态
    GameObject.SetActive(true);
    激活/停用此游戏对象(如下图所示打钩(true)的时候该游戏对象就属于激活状态,去掉打钩(false)就属于停用状态即游戏对象也就不会显示在你的视野内)
     Unity GameObject
 

常用的函数

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);