GameObject类的使用

作者: 夜行水寒 | 来源:发表于2017-06-14 00:23 被阅读67次

    创建物体的三种方法,这三种方法实际上都是属于GameObject类的方法

    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    
    //创建gameObject的方法
    public class gameObject : MonoBehaviour {
    
    public GameObject prefab;
    
    // Use this for initialization
    void Start () {
        //1.第一种创建方法(创建空的游戏物体,名字为New Game Object)
        //也可以对其进行命名,比如命名为“Cube”
        new GameObject();
        GameObject go = new GameObject("Cube");
    
        //第二种创建方法 静态方法Instantiate()
        //根据prefab或者场景中的游戏物体/特效来实例化的(理解:一个类的实例化过程)
        GameObject.Instantiate(prefab);
    
        //第三中创建方法  CreatePrimitive() 创建一些原始的图元或形状
        //原始的图元比如:cube plane等等
        GameObject.CreatePrimitive(PrimitiveType.Cube);
        GameObject.CreatePrimitive(PrimitiveType.Capsule);
    
    }
    
    // Update is called once per frame
    void Update () {
        
    }
    }
    

    通过代码给游戏物体添加组件
    如:添加一个刚体组件(可以添加任意组件,包括自定义脚本)

    GameObject go = new GameObject("Cube");
    go.AddComponent<Rigidbody>();
    

    GameObject的两个常用属性:

    GameObject go = new GameObject("Cube");
    //表示游戏物体是否在Hierarchy面板中激活
    Debug.Log(go.activeInHierarchy); //true
    go.SetActive(false); 
    Debug.Log(go.activeInHierarchy); //false
    //tag标签,用来区分不同的游戏物体
    Debug.Log(go.tag);
    

    其他属性:
    layer 分层
    scene 所在场景
    tag 标签
    transform

    GameObject的静态方法
    1.GameObject.CreatePrimitive 见上面第三种创建物体的方法
    2.GameObject.Find (根据名字)查找游戏物体
    通过遍历来查找(当游戏物体较多时,比较耗费性能)
    3.GameObject.FindGameObjectsWithTag
    返回所有符合这个标签的游戏物体(一个数组)
    4.GameObject.FindWithTag
    返回第一个符合这个标签的游戏物体

    相关文章

      网友评论

        本文标题:GameObject类的使用

        本文链接:https://www.haomeiwen.com/subject/kdojqxtx.html