小白学习Unity 3D做经典游戏坦克大战日常

版权声明:SiKi学院 https://blog.csdn.net/soukenan/article/details/84201204

在这里插入图片描述

老师 | Trigger

学习者 |小白

出品 | Siki 学院

Hello,小伙伴们。接下来小白跟Trigger老师做一款2D游戏坦克大战。从素材、代码到场景和UI的游戏开发。小白把日常遇到的问题做一个记录贴,让各位小伙伴充分了解Untiy 3D基本游戏开发和一些小白容易疏忽的问题。Unity 3D有着非常便利的管理和编码功能。现在非常热门的MOBA游戏王者荣耀,也是用Unity 3D 开发的呢!用其他编程语言例如: java / kotlin 和 Object-C / swift 原生游戏的开发是非常耗时耗力的,并且在一些细节问题上不容易处理。

废话少说,一起燥起来吧~

首先需要准备:

Untiy 3D版本:2017版本以上
学习非常简单,不会的话,参考SiKi学院的视频。

还需要掌握计算机语言:C#,非常简单,如果你还年轻,对现在工作感到不理想。想学习一门技术这个是你不二选择。

下面小白就从日常遇到的问题做个记录。

控制坦克玩家移动代码

public class Player : MonoBehaviour {
      
      public float moveSpeed=3;
      
      void Update()
      {
             //监听水平方向
             float h=Input.GetAxisRaw("Horizontal");
             transform.Translate(Vector3.right*h*moveSpeed*time.deltaTime,Space.wrold);
             float v=Input.GetAxisRaw("Vertical");
             transform.Translate(Vector3.up*v*moveSpeed*time.deltaTime,Space.wrold);
      }
}

问题1:GetAxis 和GetAxisRaw的区别?
Input.GetAxisRaw 获取原始轴
通过坐标轴名称返回一个不使用平滑滤波器的虚拟坐标轴;

Input.GetAxis 获取轴
根据坐标轴名称返回虚拟坐标系中的值;

共同点:
这两种方法都是用来取得轴向值的,两种方法的最大值和最小值都是1和-1.

不同点:
使用Input.GetAxis,在刚开始按下W的时候取得的值会从0到1慢慢递增:exp:0-0.133-0.33-0.672-0.851-1.0;
放开就有递减的效果,这种方法可以产生变化感,有加速和刹车的感觉;

使用Input.GetAxisRaw,取得的值永远只有三种-1,0,1;在按下W取得值会从0变成1;

问题2:Transform.Translate 平移
简单的说,向某方向移动物体多少距离;

猜你喜欢

转载自blog.csdn.net/soukenan/article/details/84201204