02-GameObject类

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

    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值