最近失蹤了一段時間,
其實卡牌遊戲我還是有不斷在研發,
只是因為一直研究新的技術,
讓我猶豫到底要不要改一些方法~
總之這次跟大家講解的是範圍判斷,
主要是參考3D遊戲的放置範圍去製作的,
這個方式3D跟2D都通用,只是可能需要微調,
我是沒去查過其他的方法,不知各位有甚麼更好的方法,
也可以留言跟我一起研究個~
卡片使用區域
首先先在場景上產生一個空物件,
然後給它加上Collider,
並且定義一個類別給空物件,
接下來就是程式的部分,
利用Ray去產生一個偵測線,
當Ray碰到指定類別的空物件,
就會觸發卡片效果。
/// <summary> /// 卡牌觸發類別 /// </summary> public LayerMask playingFieldMask; private void OnCardUp(int _cardId){ Ray ray = Camera.main.ScreenPointToRay(ownCards[_cardId].transform.position); RaycastHit2D hit = Physics2D.Raycast(ray.origin, ray.direction, 10, playingFieldMask); if(hit.collider){ // 觸發卡片 }else{ // 不再觸發範圍 } } |
通常觸發卡片就是刪掉卡片,
並且執行使用函式,
而不觸發的話就是恢復原位、原狀。
我現在做到的進度,
已經可以對戰了,
只是卡牌跟敵人還沒做好,
還在思考要新增那些卡片與敵人,
這邊我倒是有個問題想問大家,
新增卡片你們會將每個卡片用成一個檔案嗎?(像下圖
還是你們會做配置圖,然後用讀取JSON的方式來新增卡片?
![](https://miro.medium.com/max/1400/1*HcrEnsRQgUQW65lcAIAgAA.png)
最後我的卡牌系統大多是參考這個(類似皇室戰爭的專案檔)
順便宣傳DC群
這裡包含了繪畫創作、BOT娛樂、遊戲討論、影像分享、程式交流等內容。