您的位置:首页 > 移动开发 > Unity3D

Unity学习笔记二 - Survival Shooter Tutorial

2016-04-21 20:47 309 查看
与常见编译器相同的部分这里一律省略,我使用的Unity5.3.4

上传的工程里面_CompletedAssets里可能是个比这10课还要完整的游戏组成,不过我为了确认在我的工程中删除了  http://pan.baidu.com/s/1kVtmXy3
有问题可以给我留言

1.Prefabs 和 GameObject   Instantiate

创建物体的时候Prefabs(预设体)会一个一个创建。  而连续创建一个GameObject会不断地把其加倍,可以自己实验,其机制似乎根据什么把Clone继续Clone

2.根据经验 工程中的Prefabs,Resources,Materials等文件夹名字都很重要

例如。Resources.load 是从Resources为顶级目录填写资源路径的,其他的Prefabs直接拖个建立好的物体到其中直接变成Prefab,其他也都有搜索上的意义等等。

不要乱放

3.简单拿一段PlayerMovement中的代码以注释的方式来分析下,部分提出,部分以注释的方式

(1)看到Horizontal,Vertical,到Edit-〉Project Setting-〉Input





打开InputManager,自己看Horizontal和Vertical下的内容,包括改变方式和敏感度等

(2)Update 和
FixedUpdate

Update根据实际帧,不稳定。  
FixedUpdate跟据固定的时间间隔,不受帧波动等影响,在一些移动等和时间间隔稳定密切的地方常用。

    void FixedUpdate()
    {
        float h = Input.GetAxisRaw ("Horizontal");  
//取得Horizontal的值,其实是坐标系中x轴坐标
        float v = Input.GetAxisRaw ("Vertical");    
//取得Horizontal的值,其实是坐标系中在轴坐标

        Move (h, v); 
//向(h,0,v)方向移动,这个游戏y轴没有移动量
        Turning ();
        Animating (h, v);
    }

    void Move(float h,float v)
    {
        movement.Set (h, 0f, v);  
//前面定义Vector3 movement;这里设置值

        movement = movement.normalized * speed * Time.deltaTime; 
// movement.normalized的含义应该是将向量单位化,乘上速度和每帧时间片是每帧时间段的移动距离

        playerRigidbody.MovePosition (transform.position + movement);
//由于playerRigidbody = GetComponent<Rigidbody> ();本脚本绑定在物体Player上,所以取得其刚体移动到物体原位置+移动距离=帧后应到位置(transform没有类似的函数,刚体的移动方式我们后面再说,我觉得暂时这里只是记住这样好用)
    }

af74
 其他的我们下次再说明
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息