主題

Unity遊戲研究-卡牌遊戲(4)-卡牌使用或放置範圍

冰峰Will | 2021-11-22 15:51:21 | 巴幣 1006 | 人氣 151

最近失蹤了一段時間,
其實卡牌遊戲我還是有不斷在研發,
只是因為一直研究新的技術,
讓我猶豫到底要不要改一些方法~

總之這次跟大家講解的是範圍判斷,
主要是參考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的方式來新增卡片?

最後我的卡牌系統大多是參考這個(類似皇室戰爭的專案檔)

順便宣傳DC群
這裡包含了繪畫創作、BOT娛樂、遊戲討論、影像分享、程式交流等內容。

創作回應

相關創作

更多創作