iT邦幫忙

2021 iThome 鐵人賽

DAY 18
0
Mobile Development

FPS dungeon crawler game devlog系列 第 18

Dungeon Mizarka 018

MiniMap製作Part2

找到了tile生成時位置錯亂的原因,還是因為進位造成的問題。A★內部是用整數的Vector3Int存位置,但這個值應該是直接用Vector3的值乘上1000,也就是原先浮點數有的誤差是會被記下來的。之前沒有注意到,所有的值都往上提到下一個位置,而沒有比較該值比較接近這個或是下一個位置的值。修改過後的程式碼片段如下

var adjustedX = Mathf.Abs(gridNode.position.x) % 4000;
var xOffsetTo4000 = 0;

if (adjustedX > 2000)
{
    xOffsetTo4000 = 4000 - adjustedX;
    if (gridNode.position.x < 0)
    {
        adjustedX = (gridNode.position.x) - xOffsetTo4000;
    }
    else
    {
        adjustedX = (gridNode.position.x) + xOffsetTo4000;
    }
}
else
{
    xOffsetTo4000 = adjustedX;
    if (gridNode.position.x < 0)
    {
        adjustedX = (gridNode.position.x) + xOffsetTo4000;
    }
    else
    {
        adjustedX = (gridNode.position.x) - xOffsetTo4000;
    }
}

而後再搭配一連串沒有整理過的運算,用Tile拼出整個房間的佈置。

目前的結果看起來如下

比對Unity Editor裡3D的上視圖

比對的結果很相似,一些地方還要再修正,不過多數情況下不會有太大的影響,日後再進行修正。

將Render Texture放到第二個專門拿來看MiniMap的Camera裡,放利用Raw Image呈現render texture可以看到MiniMap大致有個雛形出現

實際的地圖

特定將MiniMap的可視範圍限制在九宮格的大小裡,而按押此MiniMap後則會出現較大的map,以方便觀看更多的資訊。

接下來需要調整的部份包含了MiniMap的呈現顏色、Icon和通道的內外區分方式,也或許會慢慢的把Fog of War加進來,但實際會如何呈現還待發想。

使用道具調整

日前將可使用的道具加入後沒特別注意,但道具呈現時Use是灰色的,也就是無法按下去的狀態。UI上可以顯示代表UIS的流程沒有錯,今天也再花一些時間了解是什麼原因造成無法使用道具。

仔細比對UIS的Demo後才發現現在用的那個Item Action和物品使用是沒有關係的,使用這個動作在UIS裡沒有提供,只有Demo裡才有,且名稱為Consume,而不是Use,之前沒有注意到這中間的差異。UIS裡內含的Use是一個看文件也不是很清楚在做什麼的動作。

之後看直接用Sample裡的Consume還是再額外寫一個來用。


上一篇
Dungeon Mizarka 017
下一篇
Dungeon Mizarka 019
系列文
FPS dungeon crawler game devlog30

尚未有邦友留言

立即登入留言