Unity3D牛刀小試

2021-07-09 13:02:50 字數 3028 閱讀 4531

unity3d基礎介面操作:

正方向:x右、z

前、y上。x

軸向右+

,向左-;z

軸向前+

,向後-;y

軸向上+

,向下-;

alt+滑鼠左鍵拖動,以選定的目標為中心旋轉。

alt+滑鼠右鍵拖動,縮放。

q:抓屏移動。

w:調整

position。e

:旋轉,調整

rotation。r

:縮放,調整

scale。t

:2d方面調整大小。

ugui

建立指令碼:直接建立之後改名字。不能重新命名。若重新命名要在指令碼裡改類的名字。指令碼中注意大小寫 

u3d中左邊create的物件體都是gameobject

,在unity

中都是對遊戲體

gameobject

進行建立或修改操作

gameobject.createprimitive【建立預置的】 (primitivetype

【預置型別的】.cube)

自定義的名稱.transform.localscale 修改它的transform

屬性中的

scale

屬性。自定義的名稱.transform.position 

修改它的座標。

transform和gameobject互相可以「

.」出來。

乙個遊戲中需要用大量預製件,可以節省資源。對於需要多次使用某個物件的情況中、

預置件:prefab

。用預製件做出來的物件擁有母體所有的屬性(模板)。

預製件在指令碼中用gameobject

點出來instantiate

,它的型別是

object

,需要強制轉換為物件的型別。

製作預製件:如果是建立的物件,直接拖到下面assets

中,隨後刪除該建立的物件,生成預製件。如果是來自外部檔案的物件,先將這個物件拖到上面

hierarchy

中作為乙個遊戲體,然後再拖到

assets

中,再刪除該遊戲體,生成預製件。

select選中該物件來自哪個預製件。

revert

撤銷到和預製件一樣的狀態。

應用到預製件,更改所有。

動畫控制器。new animator controller.

將該物件的動畫

take 001.

拖到控制器中。把乙個物件體顯示出來並且將動畫控制器放進它

animator

的controller

中。並且

,將預製件修改。實現動畫執行。

localposition是相對於它的父級座標的位置,

position

是相對於世界座標的位置。

game.runner

建立管理器skylineclosemanager,skylinefarawaymanager,

實際是2

個gameobject

,為了掛載指令碼用,在遊戲中不顯示。用

cube

生成skyline

背景塊的預製件。新建資料夾分別放置角色(

runner),

**(music

),場景(

scenes

),天際線(

skyline

)的資訊,存放指令碼和材質球等相關物件。遠近的

skyline

都用同一套指令碼,但設定的值不同,所以它們的呈現的樣式不同,但是規律都是一樣的。

建立指令碼。skylinescript控制背景樓房的生成及更新。在指令碼中

public

的物件可以在

u3d中改變值,私有的不能在

u3d中顯示並改變。指令碼中公開的屬性的值在

u3d中一旦編譯,再改變值沒有影響,只能在

u3d中改變。所以只需要公開定義這個屬性,不用寫值。公開目標預製件

prefab

,起始位置startposition

,螢幕中可見樓房數量gameobjectnumber

(因為後面的樓房都是用之前的樓房改變屬性後移的,所以並沒有寫出來全地圖的樓房),需要隨機的最大最小大小。私有定義下乙個位置nextposition

(為了方便記錄),定義乙個佇列(方便生成刪除之前的樓房,生成新的樓房)【佇列:

queue

名稱。需要匯入命名空間「system.collections.generic

」】。例項化這個佇列確定佇列長度(即螢幕中可見樓房數量)。用for

迴圈寫出當前數量的樓房。在用乙個for

迴圈控制生成的樓房的高低位置。用佇列的特性(先進先出)來控制視覺上樓房的移動(實際總是第乙個樓房重新生成在最後乙個位置,不斷迴圈)。新增乙個

cube

作為角色,將

maincamera

綁在cube

上(先將

cube

的transform

重置了再將

maincamera

拖到cube

上),寫

runner

的指令碼。公開乙個靜態的

distance

(公開的靜態的屬性不會顯示在

u3d中)作為

runner

和世界中心

x的變化距離distance = transform.position.x。控制runner開始運動transform.translate(5f * time.deltatime, 0, 0)。time.deltatime就是將這個動作控制在1秒時間內勻速完成。如果直接寫5就是1幀運動5個單位,1秒有26幀。在主指令碼中寫乙個update方法,每幀都執行。判斷runner運動的距離和第乙個樓房的距離,如果大於一定量,則執行recycle方法,刪除第乙個樓房,重新生成新的樓房。

nodejs 牛刀小試

目前在做乙個使用者登入驗證的案例 真是彎路 彎路 再彎路啊 不多說上 用到的模板 express 資料庫mysql 使用者校驗 socket.on judgeuser function nickname function err1,rows if rows.length 0 else 使用者註冊 s...

查詢 牛刀小試

給定乙個值k,在含有n個記錄的表中找出關鍵字等於k的記錄。若找到則返回該記錄的的位置或資訊,否則查詢失敗,返回相關的指示資訊。一 順序查詢 思路 元素沒有順序,因此要掃瞄整個陣列中的所有元素,逐個與k比較 相等則查詢成功,返回該元素位置 如果掃瞄結束沒有發現和k相等的元素,返回0 int searc...

dynamic 牛刀小試

今天在網上看帖時看到了這樣乙個問題 現在我用反射 personmodel.dll 呼叫乙個型別方法 getallpersons 返回person,其中person為 personmodel.dll 在定義,請問,我要怎麼操作才能取回返回的陣列值呢?恰好手頭沒事做,就順手寫了乙個demo,但在獲取到結...