GameObject游戏物体相关
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class No3_GameObject : MonoBehaviour
{
public GameObject go;
void Start()
{
//创建GO
//1.使用构造函数(声明+实例化)创建空的GO方法
GameObject go1 = new GameObject();
GameObject go2 = new GameObject("自定义名称的GO");
//2.根据Prefab或场景中的游戏物体来实例化
GameObject go3 = Instantiate(go);
//3.使用特别API创建一些基本的游戏物体类型
GameObject.CreatePrimitive(PrimitiveType.Cube);
//获取和查找GO,使用GO的方法和变量
Debug.Log(this);//this 表示当前组件
Debug.Log(this.gameObject);//组件挂载的GO
gameObject.SetActive(false);//失活 激活GO
Debug.Log(gameObject.activeInHierarchy);//当前GO的激活状态
Debug.Log(gameObject.activeSelf);//当前GO的激活状态
Debug.Log(gameObject.tag);//当前GO的tag
Debug.Log(gameObject.layer);//当前GO的层级
//查找一个GO,被查找的GO需要是激活状态
GameObject.Find("Main Camera");//通过名称查找GO
GameObject.FindGameObjectWithTag("MainCamera");//通过tag查找一个GO
GameObject.FindGameObjectsWithTag("MainCamera");//通过tag查找一组GO
Camera camera= GameObject.FindObjectOfType<Camera>();//通过组件类型查找具体类型
//查找一组GO,被查找的GO都需要是激活状态
GameObject[] testGOArray = GameObject.FindGameObjectsWithTag("TestTag");
foreach (GameObject go in testGOArray)
{
Debug.Log(go.name);
}
Debug.Log("--------------------------------------");
BoxCollider[] testGOArray2 = GameObject.FindObjectsOfType<BoxCollider>();
foreach (BoxCollider b in testGOArray2)
{
Debug.Log(b.gameObject.name);
}
}
}
MonoBehaviour基类
//MonoBehaviour派生自Component,所以拥有Component的公有,保护的属性,成员变量,方法等功能
//MonoBehaviour的父类是Behaviour,Behaviour的父类是Component
//挂载脚本到GameObject上 是Componet功能,所以MonoBehaviour也有这个功能Debug.Log(this.isActiveAndEnabled);//激活并且启动了该脚本
没有评论:
发表评论