首先寫了設(shè)置Linerenderer不同屬性的函數(shù),寫在Linkmodel的start里,fixedupdate也寫了一部分更新positions肥荔,根據(jù)手動(dòng)設(shè)置的linematerial更新material(方便后面調(diào)試bug)涣澡,?
1.Resources.load()
網(wǎng)上查了N種都不能用
官方文檔也寫的不清楚(??==)
Final:
把要加載的material狐肢,手動(dòng)放在resources文件夾下面,然后癌蓖,用相對resources文件夾的路徑,去load<material>(name)婚肆,沒有擴(kuò)展名租副,也不加as material
2.設(shè)置link的size:
用暴露的widthmultiplier接口
3.設(shè)置link的height:
暴露linkheight接口,在fixedupdate部分根據(jù)新的linkheight更新bezier兩個(gè)輔助點(diǎn)位置较性。
4:考慮之后的地圖板塊可能會(huì)高低起伏用僧,因此startpos需要加上所在區(qū)域板塊的高度
object.getcomponent<Mesh>().size好像是這個(gè)
這里也幫助我決定了一個(gè)抉擇:
1.用name->(lat,long)->pos
2.gameobject.find(name).transform.pos
當(dāng)初選擇option1,并且已經(jīng)寫好了untils的函數(shù)赞咙,但是考慮到這樣Link和板塊是割裂的责循,查找高度的時(shí)候還是要建立連接,因此不如option2攀操。
當(dāng)然utils函數(shù)也沒有白寫院仿,loc2pos 在pointmodel 會(huì)用得到的.
5.linerenderer的startcolor,endcolor, gradient color,material速和,shader之間如何相互作用決定最終的效果
根據(jù)unity官方文檔:
????1.startcolor到endcolor直接會(huì)形成漸變歹垫。
? ? 2.colorgradient直接在editor里或者在代碼里setkeys定義漸變(keys最多8個(gè)好像)八個(gè)vertex之間混合形成漸變。
? ? 3. linerenderer.material颠放,第一版本的線的效果其實(shí)全靠material實(shí)現(xiàn)排惨,在editor里調(diào)整了底色和Innerlighting,出來的效果如下圖,此時(shí)的material.shader是mixedrealitytookit/standard碰凶,這個(gè)shader提供了innerlight的效果選項(xiàng)
那么為什么還要繼續(xù)折騰暮芭?
因?yàn)橄M麖膄rom到to使用兩個(gè)地區(qū)的顏色漸變完成的,也就是想通過1/2來完成欲低,但是發(fā)現(xiàn)這個(gè)和material的shader有沖突辕宏,
簡單來說,上述shader壓根不理會(huì)Linerender自己的colorgradient伸头,而能夠顯示或者根據(jù)linerenderer的漸變顏色進(jìn)行處理additive/multiply的shader如下:
這個(gè)使用了MRTK/standard的shader但是好像也混合出了本身的顏色的匾效,沒有復(fù)現(xiàn),存疑恤磷?好吧面哼,看起來是環(huán)境光,和linrenderer.color沒關(guān)系
(好煩)
目前的解決方案只有重寫一個(gè)shader??
這個(gè)不要太麻煩啊==
more:?
這里有一個(gè)問題是兩個(gè)地區(qū)顏色不同扫步,然而傳播過程意味著魔策,在傳播過去之前,兩個(gè)地區(qū)一定是顏色不同的河胎,
傳播過去之后才會(huì)變化闯袒,時(shí)間維度是通過播放展示,為什么line的顏色會(huì)是固定的呢,應(yīng)該是根據(jù)to地區(qū)的顏色變化政敢,Line的顏色也變成from地區(qū)的顏色其徙,流動(dòng)的效果。