用最簡單的方式Ctrl+C&Ctrl+V把場景往上延伸,Ctrl+D也可以直接複製此物件,看要製作多長遠的關卡跟內容就自行設定囉~(每一個場景間隔Y為12),此篇先用之前子彈一樣的往上方式,如想改變不同的關卡模式都可以嘗試看看(有背景移動方式或攝影機跟隨方式…等)
複製一些背景,可以把統一的背景放在同一個空物件裡(Create Empty)暫時取名Bg
多加一個往上移動在Player程式裡面
private void Update()
{
horizontalMove = Input.GetAxisRaw("Horizontal");
transform.Translate(Vector3.up * 1 * Time.deltaTime, Space.World);
}
在Main Camera裡面也加裝一個程式,暫定名稱為CameraUp此程式只是讓攝影機能跟Player一樣的速率向上移動(如果會寫程式或想嘗試改變的人,也可以讓Player修改成可上下左右移動,空氣牆就放在攝影機上,增加上下的空氣牆不讓Player跑出攝影機外)
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CameraUp : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
transform.Translate(Vector3.up *1 * Time.deltaTime, Space.World);
}
}
現在會發生一個小問題,當Player碰撞到敵機的主體時會發生碰撞,碰撞後敵機跟Player都可能偏移角度跟接受到不同方向的推力,這不會是我們希望發生的碰撞
要讓物體碰撞後不改變某些角度可以在剛體Rigidbody裡面的Constraints裡面有XYZ三軸的角度,打勾後可以鎖定此軸角度不會改變,但現在碰撞到還是有不同的推力,這遊戲就先把Enemy敵機碰撞器的isTrigger打勾,先不要碰觸到即可