查找
GameObject.Find(string)
:[静态方法] 通过名字查找游戏物体
返回游戏对象GameObject.FindGameObjectsWithTag(string)
:[静态方法]
通过特定的标签,查找到所有“贴有”该标签的游戏物体,返回一个数组。
private GameObject[] m_Desk;
void Start () {
m_Desk = GameObject.FindGameObjectsWithTag ("Desks");
for(int i = 0; i < m_Desk.Length; i++){
Debug.Log (m_Desk[i].name);
}
}
void Update () {
if(Input.GetKeyDown(KeyCode.space)){
for(int i = 0; i < m_Desk.Length; i++){
m_Desk [i].GetComponent<Transform> ().Translate (Vector3.up * 2, Space.Self);
}
}
}
移动
public class CubeMove : MonoBehaviour{
private Transform c_transform; //通过transform组件实现移动
void Start(){
c_transform = gameObject.GetComponent<Transform>();
}
void Update(){
if (Input.GetKey(KeyCode.UpArrow)){
c_transform.Translate(Vector3.forward * 0.1f, Space.Self);
}
if (Input.GetKey(KeyCode.DownArrow)){
c_transform.Translate(Vector3.back * 0.1f, Space.Self);
}
if (Input.GetKey(KeyCode.LeftArrow)){
c_transform.Translate(Vector3.left * 0.1f, Space.Self);
}
if (Input.GetKey(KeyCode.RightArrow)){
c_transform.Translate(Vector3.right * 0.1f, Space.Self);
}
}
}
旋转
利用transform组件
if (Input.GetKeyDown(KeyCode.Space)){
r_transform.Rotate(Vector3.up, 90);
}
利用触发器
private Door m_Door;
//Door有个空的父物体DoorParent
void Start () {
m_Door = GameObject.Find ("DoorParent").GetComponent<Door> ();
}
void OnTriggerEnter(Collider coll){
if(coll.gameObject.name == "Student"){
m_Door.OpenDoor();
}
}