zoukankan      html  css  js  c++  java
  • Unity3D中GameObject 详细介绍

    通过Hierarchy面板下的Create菜单可以手动地创建一个GameObject,它可以是一个相机,一个灯光,或者一个简单的模型,当我们要在程序里面动态地创建一个相机的时候,可以new一个GameObject,然后把Camera组件Add给它就可以了,创建灯光,GUI等也类似,但要创建简单模型的时候,我发现并没有类似Cube,Sphere这样的组件可供添加,后面知道,通过GameObject这个类的一个静态方法可以达到这个目的

    static GameObject CreatePrimitive(PrimitiveType type);

    可以根据PrimitiveType创建五种类型的基础模型

    PrimitiveType.Plane,PrimitiveType.Cube,PrimitiveType.Sphere,PrimitiveType.Capsule,PrimitiveType.Cylinder

    Unity3D提供一种被称为Prefab的预置对象,它是以文件的形式保存在硬盘上的一个GameObject,它里面可能包含了各种设置,组件,还有一些脚本。Prefab允许我们在不同的Scene,甚至Project中使用同一个对象,例如我实现了一个子弹,通过打包成Prefab,我可以在另外一个游戏里面直接使用它。

    当一个Prefab对象被修改的时候,它的所有实例都会相应地被修改

    在代码里面动态地实例化一个Prefab对象

    public GameObject obj;
    obj = Instantiate( obj  );

    要先创建一个公有变量,然后把这个Prefab拖到这个变量上,然后才可以用它来实例化对象(我感到一种蛋蛋的忧伤,能不拖吗)

    通过Resources这个类的静态方法可以将Prefab对象动态加载进来,创建GameObject

    GameObject之间的通讯,在游戏中,我们往往需要知道其他对象的一些信息,所以我们经常需要动态地查询另外一个GameObject

    1. 查找父节点 transform.parent

    2. 查找子节点 transform.Find(“name”);  transform.Find(“Arm/Hand/Finger”); 没有找到会返回null,名字如果包含”/”字符将像路径一样穿越层次

    3. 查找场景中的其他GameObject
    GameObject.Find 从Scene下开始查找,根据GameObject的名字进行查找,允许使用”/”穿越层次查找,
    GameObject.FindWithTag根据Tag查找一个GameObject,
    GameObject.FindGameObjectsWithTag 根据Tag批量查找GameObject

    GameObject的name和Tag可以直接设置,但Tag需要在标签管理器先定义一个Tag,这个Tag才可用,你不能将一个未定义的Tag赋给GameObject的Tag变量

    最后还有一种搓搓的通讯方法,通过Message来调用其他GameObject,默认是垃圾短信群发,也可以将一个Object穿进去,然后调它的方法

    methodName为方法名,value为方法的参数,options表示是否必须有对象接收该消息(如果是,且没有对象接受,u3d报错)

    //调用本级别所有的GameObject上所有脚本的methodName方法
    void SendMessage(string methodName, object value = null, SendMessageOptions options = SendMessageOptions.RequireReceiver);

    //朝本级别和上级父节点发送调用命令
    void SendMessageUpwards(…)

    //目标是本级别和全部子节点…
    void BroadcastMessage(…)

    调用Object的Destroy方法可以销毁一个GameObject,组件,或者资源。这是一个静态方法,函数的原型为 static void Destroy(Object obj, float t = 0.0F );

    可以通过将this传入,销毁自己。

    GameObject的成员变量很多

  • 相关阅读:
    free解释
    无损 JBIG2 编码库(Lossless JBIG2 Encoder)
    PDF补丁丁暂停更新
    PDF补丁丁将字符识别结果写入PDF文件功能即将完成
    PDF补丁丁0.3.3版:字符识别结果写入PDF文件功能邀请测试
    PDF补丁丁 0.3.3.58版修复打开、输出超大型PDF文件问题
    PDF补丁丁0.3.3版即将发布
    PDF补丁丁0.3.3.12 新增查看PDF文件隐藏对象及导出流对象功能
    PDF 补丁丁 0.3.3 正式版发布
    PDF 补丁丁0.3.3.20版新增JBIG2压缩功能,可为扫描PDF瘦身
  • 原文地址:https://www.cnblogs.com/kanekiken/p/7533517.html
Copyright © 2011-2022 走看看