上週的作業保齡球規則
Student A
角色:玩家1、玩具球、娃娃A、娃娃B、娃娃C
規則:打擊娃娃,要贏得遊戲需要使用玩具球打擊到娃娃,共有三次機會可以打擊,全部娃娃都有被打擊到就能贏得勝利,如三次機會中只打擊到其中一隻/兩隻娃娃,另外沒被打擊到的娃娃會消失,遊戲立即結束!
Student B
角色(互動物件):球、球瓶1、球瓶2、球瓶3
規則:擊倒球瓶1、2就贏了,擊倒球瓶3會回到原點
Student C
互動物件:球、球瓶1~10
規則:有兩次機會,每次球丟出跑完球道後,會跑回原點,擊倒球瓶1~10就贏。
Student D
發射端 飛彈 球體.......被撞端 瓶狀物 生物
勝利條件 全倒
場地 梯形
以下為可能增加
直接結束條件 發射端物品用完,失敗條件 還有剩下被撞端的物品
Student E
角色:玩家A(球桿)、母球、子球A、子球B、子球C
規則:遊戲名稱叫霹靂迷你撞球,想要贏遊戲需用球桿撞擊母球,母球將所有子球打進洞裡,你就贏了,如果母球進洞則會翻桌
基本上保齡球遊戲可分為兩大部分(拿球那方、還有被擊物那方).
那我們開始~
準備一個地板、一顆球、一支球瓶、還有剛剛做好視角控制的椅子~~
新建一個腳本叫發射器 ,這邊取名Shooter
打開腳本,先宣告一個物體變數還有發射的瞬間力
public GameObject Bowling;
public float Power = 1.0f;
在下面寫一個關於射出球的方法
void ShootProjectile()
{
// 創建一個新的物件,位置和方向與攝影機相同
GameObject projectile = Instantiate(Bowling, transform.position, transform.rotation);
Rigidbody rb = projectile.GetComponent<Rigidbody>();
}
// 確保該物件有 Rigidbody 組件
if (rb != null)
{
// 給物件一個向前的力
rb.AddForce(transform.forward * Power);
}
然後再Update 裡面寫上 if (Input.GetMouseButtonUp(2))
{
ShootProjectile();
}
這樣就可以順利發射球出來了
這時候我們再新增一個箭頭,讓互動體驗更好一點。
宣告公開變數 箭頭public GameObject Arrow;
那箭頭在一開始是不會跑出來,除非我按住滑鼠中鍵不放
void Start()
{
Arrow.SetActive(false);
}
-----------------
接著在Update新增程式碼,因為要一直偵測是不是有按鍵按下,所以必須寫在此欄。
void Update()
{
if (Input.GetMouseButton(2)) //如果持續按下滑鼠中鍵
{
Arrow.SetActive(true); //箭頭跑出來
}
if (Input.GetMouseButtonUp(2)) //如果放開滑鼠中鍵
{
Arrow.SetActive(false); //箭頭消失
ShootProjectile(); //射出球球
}
}
這組合我知道的有三種
GetMouseButton 是按鈕按下持續
GetMouseButtonDown 是按鈕按下的那一下,就那一下(要再有反應需放開後再按下)
GetMouseButtonUp 是按鈕放開的那一下,就放開那一下
那這是球發射部分,等等就來處理球瓶的Trigger