RTS游戲制作
家對(duì)魔獸世界-冰封王座,紅警之類的游戲應(yīng)該是非常熟悉的吧,這就是典型的RTS游戲,什么是RTS游戲呢?就是即時(shí)策略游戲,玩家可以調(diào)兵遣將,創(chuàng)建建筑等??简?yàn)?zāi)愕能娛履芰α恕_@類游戲的體現(xiàn)就是我們需要自己去思考,用什么方式,策略來(lái)贏得比賽,非常刺激。我們首先需要?jiǎng)?chuàng)建一些建筑,然后建筑可以生產(chǎn)軍隊(duì)等。我們?nèi)缓髱ьI(lǐng)軍隊(duì)去戰(zhàn)勝其他玩家就可以了。那么你們知道游戲中的一些功能是怎么做的嗎?比如建筑的創(chuàng)建,軍隊(duì)的控制等。那么我們今天就要搞定這些。

首先,我們做RTS游戲,創(chuàng)建建筑是非常必要的。那么這個(gè)怎么做呢?其實(shí)用射線檢測(cè)就可以了,判斷點(diǎn)擊的是否是空地
如果是就可以創(chuàng)建了,如果不是就不能創(chuàng)建,同時(shí)需要作出視覺上的提示,比如顯示不同的顏色。來(lái)區(qū)別可建地域及不可建地域。那么這里我是這么做的:

然后可以創(chuàng)建了過(guò)后,我們需要一些顯示相關(guān)的操作,所有我們需要特殊的Shader來(lái)幫助我們達(dá)到這樣的效果,那么怎么做呢?我這里采用的是透明度混合來(lái)做的。用顏色和主紋理的顏色來(lái)進(jìn)行透明度混合,然后外部根據(jù)情況改變物體的透明度。做到選擇時(shí)半透明,創(chuàng)建后就恢復(fù)原狀的需求。然后顏色的改變也是通過(guò)外部改變Shader里面的變量。通過(guò)射線檢測(cè)碰到的物體來(lái)區(qū)別不一樣的顏色顯示。具體代碼如下

這是核心代碼,其他代碼無(wú)關(guān)緊要。然后我們就能夠做出這樣的需求了。做出后的效果就是開頭圖片的樣子。
????