unity---2d遊戲雜記
阿新 • • 發佈:2022-04-15
2d遊戲製作的筆記
save Layout 增加配置
Packges資料夾
外掛
調整視野
滑鼠中鍵 拉近拉遠
滑鼠右鍵 平移
Alt+滑鼠左鍵 移動視角
Pivot/Center
當前物體中心和多個物體共同的中心
Local/Global
全域性座標
步移工具
工具:
1.Sprite Renderer
Order in Layer 可以調節物體的前後關係 值越大越在前面
不要亂改script檔名
Start()方法只會執行一次,類似於初始化 Update()方法會不斷迴圈執行 Time.deltaTime 表示多久時間可以跑一次Loop 解決不同電腦運作速度不同 如果將屬性設定為public或者加入[SerializeField] 就可以直接在Unity中調整
Rigidbody 2D 剛體
類似真實物體,可以自由落體
Collider 碰撞
給兩個物體都增加Collider元件,可以碰撞在一起
is Trigger 不會碰撞在一起,只作為監測
判斷是否撞在一起
private void OnCollisionEnter2D(Collision2D other) {
if(other.gameObject.tag == "Floor1") Debug.Log("撞到第一種階梯");
else if(other.gameObject.tag=="Floor2")Debug.Log("撞到第二種階梯");}
判斷是否經過這個物體 需要給對應物體勾選 isTrigger
private void OnTriggerEnter2D(Collider2D other) {
if(other.gameObject.tag=="DeathLine"){
Debug.Log("你輸了");
}
}
將你製作好的樣板放入assets檔案中,可以快速拖去重複相同的樣板
overris 還可以修改所有樣板
程式碼建立物體 ,並放入另一個物體下
Instantiate(FloorPrefabs[r],transform);
刪除物件
Destroy(gameObject);
控制父物件去更新子物件
transform.parent.GetComponent<FloorManagger>().SpawnFloor();
讓物件不斷移動
transform.Translate(0,MoveSpeed*Time.deltaTime,0);
控制物件失去碰撞功能
currentFloor.GetComponent<BoxCollider2D>().enabled=false;
法線法向量
垂直接觸面
讓某個物體不顯現
HpBar.transform.GetChild(i).gameObject.SetActive(false);//反之為true
使用UI庫
using UnityEngine.UI;
人物水平翻轉,轉身
GetComponent<SpriteRenderer>().flipX=false;
給人物新增動畫
component功能選擇animator
建立animator controller
windows -> animation
建立動作clip
將貼圖或者錄製好的圖片放入
調出animator 視窗
選擇條件
bool anim.SetBool("run",true);
trigger anim.SetTrigger("hurt");
設定Layers權重值
選擇箭頭線
settings
可以將切換動畫的時間全部設為零,√可以去掉
exit time 為動畫閃爍的次數
新增聲音
component -> audioSourse
取消勾選play on wake 一開始就播放
other.gameObject.GetComponent<AudioSource>().Play();
遊戲暫停
Time.timeScale=0f;
UI button
on click()
選擇物件和方法
繼續遊戲
using UnityEngine.SceneManagement;
public void Replay()
{
Time.timeScale=1f;
SceneManager.LoadScene("SampleScene");
}