Unity拾取物品

2021-10-23 17:13:46 字數 1485 閱讀 5448

最近正在搭建遊戲demo的場景,正好有時間分享一下。

在正式開始前先說明,這個功能是和之前的人物移動有關聯。

1.首先肯定是要來乙個常用的射線檢測

//ray rayup; 

//raycasthit hitup;

ray rayforword;

raycasthit hitforword;

void

rayhit()

看過之前角色移動篇的應該會有點眼熟,這個是指令碼最後的射線檢測方法,注釋的是之前寫好的,目的是為了區分我們現在要新增的內容。

2.可以被拾取的物品列舉(也可以是外部檔案)

//鑑於我們還沒有分享過資料儲存,所以用列舉來表示物品。//

public

static

class

propdata

}

這個就是用來儲存可被拾取的物品資訊的靜態類(咳咳…不要在意內容)。

3.拾取方法

射線檢測也有了,道具也有了,還差乙個拾取方法。

為了方便我把方法寫到了玩家資料的指令碼中,呼叫起來比較方便。

using system;

using system.collections;

using system.collections.generic;

using unityengine;

///

/// 玩家資料

///

public

static

class

actordata

else}}

}

當然這裡面最麻煩的就是通過名稱去判斷列舉中是否存在該道具。

4.拾取道具

最後一步就是如何拾取了

回到角色移動指令碼中

//拾取方法

public

void

pickup()

拾取就這麼一行。。接下來就該呼叫了。

private

void

update()

//顯示物品名稱

if(enum.

isdefined

(typeof

(propdata.propclass)

, hitforword.transform.name)

)else

//按下使用鍵後可以執行的方法

if(input.

getkeydown

(keys[

"pickup"])

)}}

之前的人物移動指令碼中我們已經在update()中執行了射線檢測的方法,所以,我們只需要判斷射線檢測是否射到了物體就可以了。

如果看過我之前分享的鍵位設定就對這個輸入命令不陌生。

對了,正好看到了開門的方法,下次可以分享一下如何開門(手動滑稽)。

unity案例入門 拾取遊戲

案例簡述 這個案例實現乙個非常簡單的拾取寶物遊戲,主角是乙個小球,玩家通過鍵盤控制小球拾取全部寶物。鍵盤控制物體移動 rigidbody rd public int force 10 void start void update 控制相機跟隨物體移動 transform playertransfor...

opengl es 射線拾取

後來只好自己一點一點蒐集資料,但是無奈不知道為什麼網上這個內容有價值的特別特別少,但是好在這個過程中熟悉了android除錯過程,又找到了其他一些有用的東西,就寫了第乙個帖子 android平台下opengl學習例程 在第乙個帖子發完之後,很多開發者留了言,給了意見,我發現有些問題是大家都碰到的,討...

osgearth向量拾取

向量拾取是最近才做的功能,以前一直認為這個功能可能會很麻煩,原因呢 osgearth裡 估計所有的gis球中 是將向量光柵化成紋理貼到球上的,怎麼拾取一張上的一條線呢 osgearth的自帶例子裡沒有找到向量拾取的例子 最終這個功能畢竟是做出來了,這裡把自己的探索過程梳理一下.首先去google上搜...