一、创建方法
- 构造方法(new):创建一个空物体
- Instantiate:通常情况下通过prefab实例化,也可以根据另一个物体进行实例化;可以实例化各种游戏物体、特效、游戏角色等
- CreatePrimitive:创建一些原始的形状
测试代码:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class API03GameObject : MonoBehaviour {
//public GameObject prefab;
public GameObject go;
void Start () {
//GameObject go = new GameObject("Cube");//第一种创建方法,创建一个空的游戏物体
//GameObject.Instantiate(prefab);//第二种方法,根据prefab实例化,实例化出来的对象一般后缀Clone;或者根据另一个游戏物体克隆
GameObject.CreatePrimitive(PrimitiveType.Plane);
GameObject go = GameObject.CreatePrimitive(PrimitiveType.Cube);//创建一些原始形状
}
}
二、给游戏物体添加组件
AddComponent:通过go.AddComponent<>();添加组件,可以添加内置组件或者自定义脚本
测试代码:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class API03GameObject : MonoBehaviour {
public GameObject go;
void Start () {
go.AddComponent<Rigidbody>();//通过AddComponent添加刚体组件
go.AddComponent<API02Time>();//通过AddComponent添加自定义脚本
}
}
三、GameObject游戏物体中变量的获取和使用(禁用和启用一个游戏物体)
- activeSelf:表示自身是否处于激活状态
- activeInHierarchy:表示物体是否处于激活状态
区分:子物体和父物体——当父物体禁用的时候,其子物体均处于非激活状态,即activeInHierarchy为false,但子物体是启用的,即activeSelf为true - Tag:区分物体属性
- Transform:定位物体位置,场景中的任何一个物体都必须并且只有一个transform组件,不能被移除,我们可以从任何一个游戏物体的transform变量获取transform组件
测试代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class API03GameObject : MonoBehaviour {
public GameObject go;
void Start (