最近正在搭建遊戲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上搜...