• Unity3D第一次亲密接触


    刚开始接触Unity3D引擎,作为一个在MAC上非常出名的商业3D游戏引擎,从开发工具到执行效率都非常的专业简便。标准素材库里的脚本和资源足以不写代码完成一个FPS式的场景。

    首先是资源的导入功能,3DS MAX MAYA之类常用的3D建模工具都可以支持,导入的3D模型会以fbx文件格式存在于项目资源目录中。支持多层纹理材质(可能需要自己写shader),骨骼动画,变形动画等。但是导入之后的材质需要在editor里重新赋予纹理,目前还没有找到好的解决办法(UV坐标是正确导入的)

    代码方面 可以使用boo,js,C#脚本。C#脚本编辑器可以使用vs或者自带的MONO DEVELOP。在使用MONO DEVELOP的时候需要注意代码文件必须保存为unicode的编码,否则会出现很多莫名其妙的编译错误还会让中文变成乱码。 

    所有的行为脚本派生自Behavior类型,行为脚本可以作为Componet赋予场景中的GameObject。c#脚本的对象系统不再是.net里的Object,而是以Unity3d的Object类为基本类型。场景中的物体都派生自GameObject,GameObject派生自Object,Component派生自Object,一个GameObject可以含有多种Componet类型的成员,可以使用GameObject.getComponent方法获取在EDITOR里赋予此物体的Component.所有GameObject都有个Transform Component,可以由此操作对象在场景中的位置和几何变换。行为脚本的基类Behavior也是Component子类,也就是说行为脚本也是以Component的形式和GameObject发生关联。在C#里可以使用public来定义属性,从而可以在Editor的inspector视图中直接给这些属性赋值。既支持基本的C#数值,字串,还支持u3d引擎提供的类型,比如SoundClip类型的public变可以在inspecter里指定为Project View中的音频素材。这里有一个值得注意的地方,对于Component类型的public变量,在inspector中指定一个GameObject时,实际赋予的并不是这个GameObject,而是这个GameObject对应类型的Componet。比如把一个Cube对象赋予给一个Behavior的Transform类型public变量x,结果在C#脚本里是把这个Cube的transform属性赋给了x,不是Component本身。想必这也是出于编辑场景时候的方便,节约一些绕来绕去的GameObject.getComponent调用。对于不想在inspector中出现的变量,可以在C#里设定为private或者protect访问级别。这是比js方便的地方。

     这里附上一段测试上面说的对派生自Component类型变量赋值的测试代码:

     1 public class InspecterTest : MonoBehaviour {
     2     public Transform target;
     3     public AudioClip sound;
     4     protected int ptest;
     5     // Use this for initialization
     6     void Start () {
     7         print ("目标是:"+target.name);
     8         print ("目标位置:"+target.transform.position);
     9         print ("目标类型:"+target.GetType());
    10         print ("目标是不是GameObject?:"+(target is GameObject).ToString());
    11     }
    12     
    13     // Update is called once per frame
    14     void Update () {
    15         
    16     }
    17 }  

     音频方面 通过AudioSource Component添加的音频不仅有3D空间感 连快速移动时候的多普勒效应都已经加入了,可以直接在EDITOR里设定声音的传播范围和衰减函数曲线,非常强大。

    还有很多没有探索到的地方,以后继续完善吧。 


  • 相关阅读:
    Centos7 ping 未知的名称或服务 DNS 配置问题
    实战项目用winform动手写一个计算器
    Element UI实现树形控件单选
    C#中定时服务
    Method breakpoints may dramatically slow down debugging 解决 项目无法启动 打开Breakpoints面板(快捷键:Ctrl Shift F8 ),将断点取消勾选即可。
    1. 查看NGINX是否在运行. 四种方式 nginx的配置文件的路径: /etc/nginx/nginx.conf
    文件上传 (2)
    访问关系图
    时间和错误
    Neuron Newsletter 202207|新增非 A11 驱动、即将支持 OPC DA
  • 原文地址:https://www.cnblogs.com/fancybit/p/2650127.html
Copyright © 2020-2023  润新知