1. 程式人生 > >小白學習Unity 3D做經典遊戲坦克大戰日常

小白學習Unity 3D做經典遊戲坦克大戰日常

簡單 esp 還需 分享圖片 經典遊戲 平滑濾波 一起 耗時 date()

技術分享圖片

老師 | 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 平移


簡單的說,向某方向移動物體多少距離;

小白學習Unity 3D做經典遊戲坦克大戰日常