前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Unity基础(7)-GameObject类

Unity基础(7)-GameObject类

作者头像
孙寅
发布2020-06-02 15:21:07
1.8K0
发布2020-06-02 15:21:07
举报
文章被收录于专栏:宜达数字宜达数字
01-Unity下的GameObject类

引擎下的GameObject菜单

引擎下的GameObject菜单

02-Unity下的GameObjcet类属性
代码语言:javascript
复制
Name
对象名,可以重复,无限数量
Tag
对象的标签,在Tags&Layer面板中设置
当物体可能是空物体时,(游戏开发中,常用空物体去保存一些位置信息,空物体没有渲染,这时给物体添加一个图标,便于寻找与查看)
Layer
标记对象渲染组名字,常用于射线碰撞,摄像机裁剪,最多只能有32组
activeInHierarchy 
判断对象在层级视图是否隐藏,隐藏为false,反之True
acticveSelf 
只读属性,得到当前对象的状态(隐藏/启用)
isStatic
是否静态对象(静态对象表明只有一个)
transform
对象的位置,旋转,大小信息
scene
场景,获得当前对象的场景相关的信息
03-Unity下的GameObjcet类属性使用
代码语言:javascript
复制
       // 打印当前游戏对象的名字
        print(Cube.name);
        // 表示当前游戏对象是否隐藏
        print(Cube.activeInHierarchy);
        // 表示当前游戏对象的状态
        print(Cube.activeSelf);
        // 设置对象不隐藏
        Cube.active = false;
        // 设置当前游戏对象为静态对象
       Cube.isStatic = true;
        // 打印游戏对象所在的层
        print(Cube.layer);
        // 获取层的索引
        print(Convert.ToInt32(Layer.water));

        //打印Tag值 
        print(Cube.tag);
        // 获得当前场景
        Scene s = Cube.scene;
        // 打印当前场景的名字
        print(s.name);
        // 设置游戏对象是否需要特殊设置
        print(Cube.hideFlags);
        //// 设置当前游戏对象不保存该对象移动后的信息
        Cube.hideFlags = HideFlags.DontSave;
04-Unity下的GameObjcet类方法

官方文档

代码语言:javascript
复制
SetActive              调用此方法,传入bool参数(true/false)可以使当前物体显示或者隐藏
AddComponent         为游戏对象添加组件,脚本                   
CompareTag             调用此方法,传入字符串参数(“TagName”)当前游戏对象的tag值是否为参数TagName,名字一样返回True,反之False。           

GetComponent       获取游戏对象的组件,脚本               
GetComponentInChildren   返回此游戏对象或者它的所有子对象上(深度优先)的类型为type的组件。
GetComponentInParent          从父对象查找组件。

GetComponents               返回该游戏对象所有type类型的组件列表。      
GetComponentsInChildren *返回此游戏对象与其子对象所有type类型的组件。*
GetComponentsInParent   返回此游戏对象与其父对象所有type类型的组件。

BroadcastMessage            对此游戏对象及其子对象的所有MonoBehaviour中调用名称为methodName的方法。
SendMessage                    在这个游戏物体上的所有MonoBehaviour上调用名称为methodName的方法。
SendMessageUpwards     在这个游戏物体及其祖先物体的所有MonoBehaviour中调用名称为methodName的方法。
静态方法

静态方法

05-Unity下的GameObjcet类中的方法使用
  • 静态方法
代码语言:javascript
复制
        // 创建游戏对象
        GameObject cube = GameObject.CreatePrimitive(PrimitiveType.Cube);
       // 动态创建实例化游戏对象(针对预制物,资源包内模型等)
        GameObject sp = GameObject.Instantiate(Sp, Vector3.zero, new Quaternion(0,0,0,1));
        // 设置游戏对象的位置,不设置默认是原点位置
        //cube.transform.position = new Vector3(0, 1, 1); 
        // 根据名字查找游戏对象
        GameObject sp =  GameObject.Find("Sphere");
        sp.transform.position = new Vector3(0, 0, 0);
         // 通过Tag,找到Tag值为“Player”的物体
        GameObject obj = GameObject.FindGameObjectWithTag("Player");
        //Debug.Log(obj.name);
        // 通过Tag,找到Tag值为“Player”的所有物体
        GameObject[]  objs = GameObject.FindGameObjectsWithTag("Player");
        for (int i = 0; i < objs.Length; i++)
        /{
            Debug.Log(objs[i].name);
            if (objs[i].name == "CCCC")
            {
                ccc  = objs[i];
                ccc.transform.position = new Vector3(0, 0, 0);
                ccc.tag = "Playwes";
            }
        }
        // 查找某种类型,返回Object对象
        // 注意:要查找具化的游戏对象
        System.Object o1 =  GameObject.FindObjectOfType(typeof(People));
        Debug.Log(o1);
        System.Object[] os = GameObject.FindObjectsOfType(typeof(GameObj));
        for (int i = 0; i < os.Length; i++)
        {
            Debug.Log(os[i].ToString());
        }
        // 删除游戏对象
        GameObject.Destroy(Cube,5);
        GameObject.DestroyObject(Cube, 5);
        // 不要在加载的时候删除后面的游戏对象
        DontDestroyOnLoad(Cube);
        GameObject.DestroyImmediate(Cube);
  • 公开方法
代码语言:javascript
复制
         // 设置隐藏对象
        //Cube.SetActive(true);
        // 判断当前对象的Tag是否为“Player”
        bool b = Cube.CompareTag("Player");
        // 给游戏对象添加组件
        Cube.AddComponent<BoxCollider>();
        // 给游戏对象添加一个People脚本
        Cube.AddComponent(typeof(People));
        // 获取游戏对象身上的People脚本
        Cube.GetComponent(typeof(People));
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 01-Unity下的GameObject类
  • 02-Unity下的GameObjcet类属性
  • 03-Unity下的GameObjcet类属性使用
  • 04-Unity下的GameObjcet类方法
    • 静态方法
    • 05-Unity下的GameObjcet类中的方法使用
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档