Unity色子的投擲和點(diǎn)數(shù)的獲得詳析
前言
前幾天需要一個(gè)色子的投擲并且獲得朝上點(diǎn)數(shù)的Unity腳本,在網(wǎng)上找了很多,都是一個(gè)模子刻出來的。
對于2018版的我來說,網(wǎng)上找的都是很早就棄用了的老版本。
好不容易能運(yùn)行了,結(jié)果并不理想,于是又突發(fā)奇想做了一個(gè)菜鳥專屬的色子。
大家可以參觀一下,實(shí)測Unity2018.1.1f能用。
話不多說先上圖。
場景的搭建我就不多說了,主要還是色子。
方法如下
首先,我們需要自己做出色子的六個(gè)面(我菜只想到這種方法,反正實(shí)現(xiàn)了就行)。
然后根據(jù)色子上的點(diǎn)數(shù)將每個(gè)面改名為一個(gè)特有的名字。
我這里為了方便直接用的1 2 3....來命名。
最后給他加上剛體Rigidbody讓色子更加真實(shí)。
PS:多出來的GameObject是為了調(diào)整他的中心點(diǎn),方便旋轉(zhuǎn)。
接下來,我們讓色子旋轉(zhuǎn)起來!
就當(dāng)鼠標(biāo)左鍵點(diǎn)擊使,分別給X,Y,Z方向上一個(gè)隨機(jī)值。
然后在色子當(dāng)前的位置上加上所需要旋轉(zhuǎn)的角度。
這里我們給了一個(gè)計(jì)時(shí)器timer,讓他旋轉(zhuǎn)兩秒。
if (Input.GetMouseButtonDown(0)) { isdebug = true; //取XYZ的隨機(jī)旋轉(zhuǎn)值 p_x = Random.Range(minrot, maxrot); p_y = Random.Range(minrot, maxrot); p_z = Random.Range(minrot, maxrot); timer = 0.0f;//點(diǎn)擊后計(jì)時(shí)器清零 } if(timer<2.0f)//規(guī)定 旋轉(zhuǎn)時(shí)間為兩秒 { //旋轉(zhuǎn)色子 transform.Rotate(new Vector3(transform.rotation.x+p_x, transform.rotation.y + p_y, transform.rotation.z + p_z)); }
然后我們通過GetNum來獲取色子停止時(shí)向上的面的名字,
再根據(jù)名字得到它的點(diǎn)數(shù)。
這里由于我們直接設(shè)的數(shù)字,
將得到的名字轉(zhuǎn)化為int型就可以了。
void GetNum() { Transform[] obj=new Transform[6];//聲明數(shù)組存放色子的六個(gè)面 Transform upobj= transform.GetChild(0).GetChild(0);//聲明朝上的面 for(int i=0;i<6;i++)//循環(huán)判斷哪個(gè)面朝上 { obj[i]=transform.GetChild(0).GetChild(i); if(obj[i].position.y>upobj.position.y) { upobj = obj[i]; } } num = int.Parse(upobj.name);//將朝上面 的名字 轉(zhuǎn)化為int }
接下來點(diǎn)擊左鍵,就可以獲取到我們的數(shù)據(jù)了。
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
相關(guān)文章
C#項(xiàng)目彩票選號(hào)實(shí)現(xiàn)思路
今天做了一個(gè)彩票選號(hào)的小軟件,將學(xué)到的知識(shí)點(diǎn)總結(jié)一下,下面通過本文給大家分享C#項(xiàng)目彩票選號(hào)實(shí)現(xiàn)思路,感興趣的朋友跟隨小編一起看看吧2024-08-08WinForm實(shí)現(xiàn)仿視頻播放器左下角滾動(dòng)新聞效果的方法
這篇文章主要介紹了WinForm實(shí)現(xiàn)仿視頻播放器左下角滾動(dòng)新聞效果的方法,涉及WinForm窗口滾動(dòng)字幕設(shè)置的實(shí)現(xiàn)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-08-08C#中ManualResetEvent實(shí)現(xiàn)線程的暫停與恢復(fù)
本文主要介紹了C#中ManualResetEvent實(shí)現(xiàn)線程的暫停與恢復(fù),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-01-01C#語言基礎(chǔ)——結(jié)構(gòu)體和枚舉類型全面解析
下面小編就為大家?guī)硪黄狢#語言基礎(chǔ)——結(jié)構(gòu)體和枚舉類型全面解析。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-07-07