上文對障礙物的碰撞邏輯進行了開發,接下來就是進行跳跳鳥成功穿越過障礙物進行計分的邏輯開發,同時將對應的分數以UI的形式顯示告訴玩家。
計分邏輯
在跳跳鳥通過障礙物的一瞬間就進行一次計分,計分后會同步更新分數的UI顯示來告知玩家當前獲得的分數。
首先我們創建一個用于管理游戲計分邏輯的類叫GameScoreManager,這個類會對計分的邏輯做統一的處理。
通過障礙物計分邏輯
選中障礙物Obstacle預制體,在其上掛載一個BoxCollider 2D,并將其設置為Trigger,調整其位置在障礙物最末端,并設置大小參數為合適的數值,如下所示。
然后打開Obstacle腳本,在腳本中添加檢測跳跳鳥通過觸發器的檢測事件OnTriggerEnter2D,并檢測進入觸發器的是Tag是玩家Player,并聲明一個OnAddScore事件用來告訴類的外部需要加分,代碼如下。
public event Action OnAddScore;private void OnTriggerEnter2D(Collider2D other){if (other.gameObject.CompareTag("Player&#