using System.Collections;
using System.Collections.Generic;
using UnityEngine;
- [代码] 使用GameObject.Find / FindWithTag的时候不能在Hierarchy面板中找到未激活的游戏对象
[手动拖拽] 被拖拽的物体无论是否激活,都能被找到
public class GameManager : MonoBehaviour {
// GameObject类是Unity自带的一个类
private GameObject cube;
private GameObject[] gos;// 通过手动拖拽的方式找到游戏对象
public GameObject cube2;void Start () {
Debug.Log(cube2.name); // 修改cube2游戏对象的显隐(false表示隐藏) cube2.SetActive(false); //------【通过名字查找游戏对象】------------------------- // 从Hierarchy面板中查找名字为“白色方块”的游戏对象 cube = GameObject.Find("白色方块"); // 属性通过 类对象.属性名来访问 Debug.Log(cube.name); cube.name = "通过代码修改的名字"; //------【通过tag查找游戏对象】------------------- // 查找之前确定小方块的tag值修改为Player cube = GameObject.FindGameObjectWithTag("Player"); print(cube.name); Debug.Log(cube.tag); //-------【通过tag找到一个数组】--------------------------- // 返回所有tag为Player的游戏对象 gos = GameObject.FindGameObjectsWithTag("Player"); foreach (var item in gos) { Debug.Log(item.name); } // --------------------------------------------------------- // 1、如何在控制台输出cube的坐标 // (1)position:保存了cube的坐标,position是Transform类的一个属性 // (2)通过对象名.属性名的方式输出Position属性中的数据 // (3)怎么找到Transform类的对象 // (4)找到Transform这个组件所在的游戏对象 // (5)找到指定的游戏对象 // 找到游戏对象 GameObject tempCube = GameObject.Find("白色方块"); // (方式1)通过游戏对象,获取其身上的组件
// Transform trans = tempCube.GetComponent();
// (方式2) transform表示Transform类的对象 Transform trans = tempCube.transform; // 输出position属性 Debug.Log(trans.position);
}
}