zoukankan      html  css  js  c++  java
  • Unity3D 基础知识 依据 坦克大战 简版

    一些小知识

    (我是新手,下面的东西都是一些自己总结的,欢迎大家批评指正,谢谢,本人QQ267307031)

    将坦克托给cube的目的:

    或许很多初学者跟我一样,以为将坦克托给cube是为了给该cube加一个rigidbody(赋予其重力)然后加一个碰撞(避免其调到地形下面),其实不然,在我看来是这样的。你的坦克或许是从网上down的,或许是用3Dmax或者maya做的,一般都不是用U3D制作的,所以,在坐标问题上,肯定有偏差,甚至完全不一致,原因是3Dmax跟U3D用的是不同的坐标系统。。所以,看到这里你应该明白,将坦克托给cube实际上是调整坐标的。或者说修更合适。这个cube或许不用像一些视屏上讲的那样,必须要跟坦克一样大小。这个cube可以只起到一个 修正坐标的作用。

    . clip_image002

    改红色箭头所指向的是 所选择物体的 Enable属性,在游戏制作过程中,可以点选或取消点选该选项,来显示或者取消显示该物体。

    实例化坦克:

    Tank=Gameobject.Find(“坦克的名字”);

    接下来在调用该坦克之前,需要样成一个好习惯,就是要判断实例化的对象是否成功。

    If(Tank== null)

    Return;

    Else

    {

    对该对象的操作;

    }

    对游戏对象的控制方式:

    第一种是:硬编码,通过程序找到游戏物体(Tank=Gameobject.Find(“坦克的名字”);

    ),然后通过脚本对游戏物体进行操作。但是,随着游戏项目的扩大,或许会删掉某一些游戏物体,但是不可能挨个检查脚本修改脚本。虽然在编写脚本的时候,对该物体是否为空进行了判断,但是在实际运行游戏的时候,该脚本依然会进行很多没必要的操作,成为废代码,浪费内存,cpu使用率不断提高等。在游戏开发过程中,一般不会采用这种方法。

    第二种方法: 使用 public 用全局变量。

    第三种方法:在程序中 直接用transform。。。。最常用的方法。。该属性transform就是你将脚本托给的游戏物体的属性。相当于 隐藏了this。

    物理引擎:

    相同的物体时,主意使用预制件,预制件可以多次使用,而不太耗费资源

    mesh collider 虽然会将碰撞精确的比较好,但是或损耗游戏运行效率

    模型导入后,需要注意的问题:

    clip_image004

    Animation 

            SLAM  该模型默认动画名称为SLAM 

    Animations

            size   该模型动画的数量

            Element 该模型的动画名称

    Play Automatically 是否自动播放

    Animation Physics 是否设置该模型物理碰撞

    Animation Only if Visable 是否设置该模型仅自己显示

    1. //这个方法只调用一次,在Start方法之前调用

    2. public void Awake() {

    3.

    4.     } 

    5. //这个方法只调用一次,在Awake方法之后调用

    6.  void Start () {

    7.

    8.     } 

    9.

    10.

    在U3D中使用其他字体:

    在windows系统中,一般在如下位置可以找到字体文件:

    clip_image006

    将 字体文件(.ttf)直接拖到Project中即可:

    clip_image008

    FontSize 30 :毫无疑问是字体的大小,这里写30让字体几乎放大1倍。

    Character:  设置字体的文字编码 Unicode  ASCLL 编码

    Style:设置字体的风格,粗体 斜体

    iPhone 4 的分辨率是960x640

    s所以,在做手机开发的时候,做游戏背景的图片的分辨率应为960*640;

    游戏中的场景切换:

    该代码表示,当主物体(脚本所赋予的物体)碰到地板的时候,转换到场景1-1,

    File -> Build Settings 点击Add Current添加场景,这一步很重要,如果不添加的话在代码中切换场景会抛异常

    function OnCollisionEnter(myCollision:Collision)

    {

    if(myCollision.gameObject.name=="diban")

    {

    Application.LoadLevel("1-1");

    }

    }

    Unity3D游戏引擎一共支持4个音乐格式的文件

    .AIFF  适用于较短的音乐文件可用作游戏打斗音效

    .WAV  适用于较短的音乐文件可用作游戏打斗音效

    .MP3  适用于较长的音乐文件可用作游戏背景音乐

    .OGG  适用于较长的音乐文件可用作游戏背景音乐

    clip_image010

    AudioClip :声音片段,还可以在代码中去动态的截取音乐文件。

    Mute : 是否静音

    Bypass Effects: 是否打开音频特效

    Play On Awake: 开机自动播放

    Loop:循环播放

    Volume: 声音大小,取值范围0.0 到 1.0

    Pitch:播放速度,取值范围在 -3 到 3 之间 设置1 为正常播放,小于1 为减慢播放大于1为加速播放。

  • 相关阅读:
    vba的单元格引用的总结
    为IE窗口添加菜单实例
    给SQLServer2000升级遇到的问题
    图片上传问题(含网页图片预览)
    javascript小技巧【待续】
    成功部署JSP网站的经验总结
    VBA实例
    为JDK增加新的jar包
    理解绝对定位和相对定位布局
    资源收集
  • 原文地址:https://www.cnblogs.com/Lin267307031/p/2881710.html
Copyright © 2011-2022 走看看