做完Player後先幫來上個簡易武器吧,找到Player Bullet 0一樣拖曳到場景,看是否需要改一個自己喜歡的名稱,在子彈放上一個碰撞器Capsule Collider2D 選擇Edit Collider改一下碰撞器大小跟子彈差不多即可,最後把Is Trigger給打勾(Is Trigger會把碰撞器=>觸發器使用,物件基本上都會穿過,穿越過觸發器程式就能在穿越的時機給於不同的方法.功能等….)
從新在子彈物件上開一個程式給他,這程式名稱就直接取Bullet,一樣點兩下開啟此程式
給子彈一個標籤,之後傷害時會使用到,右上角的Tag按▼選擇Add Tag…在Tags有個+新增一個標籤給子彈暫取PlayerBullet
這程式目前就讓子彈直直前進跟一段時間自我毀滅(如果不自我毀滅子彈就會一直存在,遊戲只要沒有轉換場景,每一個子彈都會消耗一點資源,遊戲會越玩越卡)
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Bullet : MonoBehaviour
{
private float speed = 5f;
void Start()
{
//銷毀(物件(沒特別指定預設為自己),五秒後將執行)
Destroy(gameObject, 5);
}
// Update is called once per frame
void Update()
{
//位置的轉換(三圍向量的UP(0,1,0)*速度*時間.差量時間,世界座標為主)
// deltaTime每台電腦的Time時脈,速度都不同deltaTime可以讓每台電腦同一時脈,速度用
transform.Translate(Vector3.up * speed * Time.deltaTime, Space.World);
}
}
最後再把子彈製作成預置物,好讓Player之後可以調用,左鍵點擊Hierarchy裡的Bullet往底下的Project拖曳到選定的資料夾放開,Bullet會變成藍色,資料夾也會多一個Bullet的預置物
1.CS檔名務必要跟class name一模一樣,
然後名稱不要改來改去,不然後來就算改成CS檔名跟class name一模一樣還是會出錯,
會死在which does not derive from MonoBehaviour,
unity死不給做成prefab
2.然後reset套件後也無法解決第一點,然後camera就不知道為什麼看到的視角就異常了,
改不回來,新開專案也一樣
讓人覺得unity還有不少進步空間
讓人萌生退意...
之後有空再來重新安裝unity看看
1.檔名一樣就好~~(應該是很多時候都會抓程式檔名,不一樣就先報錯)
public class Bullet : MonoBehaviour(程式反而我是初學,unity畢竟是個工具...不按照工具的使用難免比較不好操作)
2.2D攝影角度應該是Z軸 調成-負值看看 (我也遇過@@)
3.reset攝影角度會變成三軸歸0...2D畫面如果攝影機跟你角色同一個平面,自然會看不到物件....
unity跟之前的版本比已經穩定不少@@
(如果有興趣也可以試試其他工具,其他工具我沒完整使用過@@...)
很高興您有自行嘗試不同的做法...多研究工具自然就上手囉~~
歡迎提問 ^^
public class Bullet : MonoBehaviour這我是確認沒錯的
第一次也可以編成prefab,只是後來亂搞後就出現我說的狀況...
只是寫個簡單APP記憶遊戲~不想搞太多時間在無所謂的地方...
你可以直接找記憶遊戲的教學 ^^應該很快能完成^^