最近做了個游戲demo,淘寶了一個人物資源包(僅學習用),里面有十個人物模型,但是我從頭到尾只用了一個,在最后項目打包時發現這個demo太大了,所以又決定刪掉一些無用的資源再重新打包一次,這個demo之后我還是想繼續開發一些新的功能,所以另外九個模型我又不舍得刪,就想了個辦法,讓他們能“物盡其用”,遂做了個簡易的換裝系統。
先思考以往玩過的游戲選擇角色的界面,然后做了個widget插槽用來構成選擇界面。考慮到點擊觸發操作,因此這個插槽我選擇用button上加圖片的方式。只要將這個插槽對應一個骨骼網格體,點擊這個插槽時就會將此骨骼網格體保存起來並賦值給場景中的人物即可。
控件變量如圖所示,其中PlayerSkeletalMesh是該控件對應的骨骼網格體,在后面用來傳遞給游戲實例GameInstance中的SkeletalMesh變量用於關卡之間的通信;
我為這個換裝系統新建了一個關卡,放置了一個人物模型。
在剛剛那個控件藍圖中,獲取該人物模型,把控件自己對應的skeletalMesh設置給人物模型,同時將該skeletalMesh傳遞給游戲實例中的SkeletalMesh變量,這是用於之后真正的游戲關卡中,把主角設置為選中的任務模型。
之后就是換裝系統整體的UI:
然后用一個土辦法,把這些小插槽分別設置上不同的圖片和與圖片對應的骨架網格體。這樣一來,換裝系統主UI的每一個插槽都有對應的圖片和骨骼網格體,每次點擊一個插槽時,就會將該關卡中的人物模型設為對應的骨骼網格體。
效果如下: