UNITY紋理動(dòng)畫,你值得擁有
現(xiàn)在的游戲發(fā)展的越來(lái)越豐富了,在很多游戲里面我們可以看到場(chǎng)景里面的水流,瀑布,山峰以及移動(dòng)的云等等。那么它們有很多都是用到了Shader(著色器),再配合合適的代碼才達(dá)到了和我們現(xiàn)實(shí)差不多的效果。那么早期的游戲,還沒(méi)有這些新的成熟的技術(shù),就像單機(jī)游戲魔獸爭(zhēng)霸,那地圖里面瀑布這種效果,它們是如何做出來(lái)的呢?其實(shí)它們是可以用紋理動(dòng)畫做的。今天給大家說(shuō)說(shuō)我個(gè)人對(duì)紋理動(dòng)畫的一些看法吧。
什么是紋理?紋理就是每個(gè)物體表面上不同的樣子,譬如說(shuō)木頭的木紋狀。那么貼圖又是什么呢?貼圖是圖,最簡(jiǎn)單的形式是ps之類的軟件做出來(lái)的一張圖,這些圖在3D中用來(lái)貼到物體的表面,用來(lái)表現(xiàn)物體的“紋理”。然后我們知道,圖貼上去需要坐標(biāo)的,那么這個(gè)坐標(biāo)就是UV坐標(biāo)了。圖片就是按照這個(gè)坐標(biāo)開始貼,然后我們就看到了。當(dāng)然今天不是和大家討論什么是紋理,而是我們?cè)趗nity里面利用這個(gè)紋理能做什么。
比如我們要做一款飛機(jī)大戰(zhàn)的游戲,那么我們的游戲背景是不是在移動(dòng)的(當(dāng)然這只是一種方法,可能有些人用的不是這種),那么可能有些人會(huì)用兩張一樣的圖片,這樣通過(guò)Animator/Animation來(lái)做動(dòng)畫。那么這樣也是可以的。只不過(guò)這樣做的話,需要把兩張圖片的位置弄好,不能出現(xiàn)一點(diǎn)縫隙,不然就太假了。那么這樣就很麻煩了。那么我今天就告訴大家,用一個(gè)方法,加上幾行代碼就能做出背景移動(dòng)的效果。你是不是心動(dòng)了?那么現(xiàn)在就開始吧!
第一步,我們需要?jiǎng)?chuàng)建一個(gè)場(chǎng)景,然后創(chuàng)建一個(gè)面片(3D->quad),然后把我們需要的圖片里面的WrapMode選項(xiàng)選為Repeat.并且把圖片TextueType設(shè)為defult.第二步我們把圖片拖入quad中去。讓它充滿整個(gè)quad。如圖:

第三步,我們把quad里面shader的渲染模式設(shè)置為Unlit/TransParent.如圖:

然后大家可以在Unity沒(méi)運(yùn)行的時(shí)候嘗試修改Offsetx/y的值,看看有什么神奇的變化。第五步寫代碼,直接上圖:

這里需要提一下,_MainTex是主材質(zhì),前面的下劃線不要忘*了。代碼意思就是根據(jù)時(shí)間每5秒讓圖片的紋理完整偏移一次。
好了,大致就是這么些了,有興趣的朋友可以在深入探索下。個(gè)人見解,不喜勿噴哦!