老师 | Trigger
学习者 |小白
出品 | Siki 学院
Hello,小伙伴们。接下来小白跟Trigger老师做一款2D游戏坦克大战。从素材、代码到场景和UI的游戏开发。小白把日常遇到的问题做一个记录贴,让各位小伙伴充分了解Untiy 3D基本游戏开发和一些小白容易疏忽的问题。Unity 3D有着非常便利的管理和编码功能。现在非常热门的MOBA游戏王者荣耀,也是用Unity 3D 开发的呢!用其他编程语言例如: java / kotlin 和 Object-C / swift 原生游戏的开发是非常耗时耗力的,并且在一些细节问题上不容易处理。
废话少说,一起燥起来吧~
首先需要准备:
Untiy 3D版本**:2017版本以上
学习非常简单,不会的话,参考SiKi学院的视频。
还需要掌握计算机语言:C#,非常简单,如果你还年轻,对现在工作感到不理想。想学习一门技术这个是你不二选择。
下面小白就从日常遇到的问题做个记录。
**控制坦克玩家移动代码**:
```javascript
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 平移
简单的说,向某方向移动物体多少距离;
原文地址:https://www.cnblogs.com/dingsiki/p/9997833.html