美文网首页
GameObject相关

GameObject相关

作者: 90qq | 来源:发表于2016-12-20 11:29 被阅读0次

    GameObject意指游戏对象
    下面这些都是游戏对象


    游戏对象

    1 GameObject标识

    1.1 Name

    对象名,可以重复,无限数量

    //我们可以通过名字寻找对象
    GameObject.Find(string name);//此方法每次都会遍历整个场景来寻找匹配的游戏物体,比较消耗资源
    
    1.2 Tag

    对象的标签,在Tags&Layer面板中设置
    当物体可能是空物体时,(游戏开发中,常用空物体去保存一些位置信息,空物体没有渲染,这时给物体添加一个图标,便于寻找查看)

    //我们可以通过Tag标签来寻找游戏对象
    GameObject.FindGameObjectWithTag(string tag);//查找一个对象
    GameObject.FindGameObjectsWithTag(string tag);//查找所有挂载此标签的对象,并返回一个GameObject数组
    
    例子
    1.3 Layer

    标记对象渲染组名字,常用于射线碰撞,摄像机裁剪,最多只能有32组
    所在位置如下图

    Paste_Image.png

    2 动态创建物体

    方法1 利用GameObject.CreatePrimitive创建

    此方法创建一个带有基本网络渲染器和相应碰撞器的游戏物体

    例子
    方法2 利用GameObject.Instantiate创建
    public GameObject obj1;
    void Start () {
    GameObject game1 = GameObject.Instantiate(obj1);
            game1.name = "Player2";
            game1.transform.position = new Vector3(2, 2, 0);
    }
    
    例子

    3 动态添加物体组件

    Paste_Image.png
    //例子
    //Sphere.AddComponent<Rigidbody>();//泛型
    Sphere.AddComponent(typeof(Rigidbody));//非泛型
    

    4 删除游戏对象

    Destroy(Object obj);//立刻删除对象
    Destroy(Object obj,float 1f);//延时删除

    例子

    5 发送消息

    (1)向上发送消息,向物体自身和父物体发送消息,如果消息没有被任何一个组件处理,则会打印一个错误。
    方法为:SendMessageUpwards("父物体方法名");//例子如下图
    字物体脚本
    (2)广播消息,对物体自身和所有子物体发送消息。如果消息没有被任何一个组件处理,则会打印一个错误。
    方法为:BroadcastMessage("字物体方法名");//例子如下图
    父物体脚本

    打印结果如下

    打印结果
    (3)向同级发送消息,如果消息没有被任何一个组件处理,则会打印一个错误
    方法为:Obj.SendMessage("同级物体方法名");//例子如下图

    球的脚本


    球的脚本

    胶囊的脚本


    胶囊的脚本

    在unity的操作


    在Unity的操作

    打印结果如下

    打印结果

    相关文章

      网友评论

          本文标题:GameObject相关

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