1. 程式人生 > >【SIKIA計劃】_05_Unity5.3開發2D遊戲筆記

【SIKIA計劃】_05_Unity5.3開發2D遊戲筆記

一.介面基本操作

 

01.Project基本分類

【Audios】音效

【Material】材質

【Prefabs】預製

【Scenes】場景

【Scripts】指令碼

【Sprites】精靈

 

02.Project丶圖片屬性

——Inspector

————Texture Type

——————Sprite(2D and UI) 因為該專案是2D小遊戲,所以選擇2D andUI

————Sprite Mod

————PackingTag

————Pixels Per Unit 圖片放置比例,一百畫素遊戲中為一米

————Pivot

 

03.Project丶物品屬性

tag 標籤

layer 操作圖層(可以自定義新增)

Sortinglayers 排序圖層

Order in Layer 圖層中排序(數字越大顯示在前面)

 

04.Edit丶project settings 專案設定

一些通用屬性的設定如輸入鍵

 

05.Layers 顯示圖層

(介面右上角)

Layers 點選要鎖住的圖層的鎖,鎖住不可選

 

0.6 元件

【Box collider 2D】碰撞檢測

Size 範圍大小,與物體吻合

會與其他collider 2D發生碰撞

 

【Rigidbody 2D】剛體

給予物體運動屬性

 

【Audio Source】音效

音效播放控制

 

二.程式碼

 

鍵盤輸入:

public KeyCode upKey;

//宣告使用鍵盤輸入,upKey具體鍵位需U3D中指向

if(Input.GetKey(upKey)){}

//判斷是否按下

 

Input.GetKey //按下觸發

Input.GetKeyDown //按下只觸發一次

Input.GetKeyUp //彈起觸發

 

剛體元件:

private Rigidbody2D rigidbody2D;

void Start() {

rigidbody2D = GetComponent<Rigidbody2D>();

//指定例項

rigidbody2D.velocity = new Vector2(speed,speed);

//改變剛體速度,建立並呼叫二維空間數

}

 

碰撞檢測:

void OnCollisionEnter2D(Collision2D col){

if (col.collider.tag == "Player") {

//二維陣列改變剛體速度

//標籤的運用

 

尋找物體:

private BoxCollider2D rightWall;

rightWall = transform.Find("rightWall").GetComponent<BoxCollider2D>();

 

地址轉化:

Vector3 tempPosition = Camera.main.ScreenToWorldPoint(

new Vector2(Screen.width, Screen.height));

//介面頂點是左下角,所以Screen.width, Screen.height是右上角

//Camera.main頂點是中心,所以右上角相當於介面長或寬的一半

 

地址生成:

upWall.transform.position = new Vector3(0, tempPosition.y+0.5f, 0);

upWall.size = new Vector2(tempPosition.x * 2, 1);

//upWall是collider2D元件

 

呼叫他類:

public class GameManager : MonoBehaviour {

private static GameManager _instance;

public static GameManager Instance

{

get

{

return _instance;

}

}

void Awake()

{

_instance = this;

}

 

GameManager.Instance.ChangeScore(col.gameObject.name);

//外界呼叫

 

GameObject.Find("ping-pong ball").SendMessage("Reset");

//傳送資訊

 

執行跟蹤:

Debug.Log(rigidbody2D.velocity);

 

介面UI:

public Text score1Text;

public Text score2Text;

public void ChangeScore(string wallName)

{

if (wallName == "leftWall")

{

score1++;

}

else if (wallName == "rightWall")

{

score2++;

}

 

score1Text.text = score1.ToString();

score2Text.text = score2.ToString();

//資料更新

}

 

音效:

private AudioSource audio;

void Start()

{

audio = GetComponent<AudioSource>();

}

void OnCollisionEnter2D()

//碰撞時觸發

{

audio.pitch = Random.Range(0.8f, 1.2f);

//隨機播放時長

audio.Play();

}

 

遊戲釋出:

場景拖拽過去

ico圖示

Default is Full Screen 預設全屏

Display Resolution Dialog 選擇解析度

Splash Image 開始logo