Tuesday, March 24, 2015

Unity3D: equip items

Not having PC at home is getting annoying. Very annoying, actually. Im forced to work in the office, without video card and only 2Gb of RAM, while people is interrupting me every 10 minutes. Well, at least I have internet access! Or something like that.

Today Im studying the item equipment problem. The method is common  to all engines: attach the item mesh to some bone. Specifically in Unity3D, there are some details. I started by putting an empty GameObject in the bone (I don't know if this can be avoided, for optimization), then creating a prefab for the item. Then, I found two ways to attach the prefab: one involves creating a public member in the equip script, and assigning the prefab to it. Then, you can use Instantiate... well, to instantiate the prefab.

That has a problem: you have to assign the prefab. What if you want to dynamically instantiate any prefab at runtime? Well, still haven't figured out a better solution than this: set up a Resources folder inside Assets, and use Resources.Load("prefab-name"). This has a disadvantage, if you assign a prefab via Editor, Unity3D can keep track of it, non referenced assets will not be bundled in the game build. Assets in Resources folder will be included, used or not, and they won't be bundled like the other assets, leaving them exposed to possible manipulation.

I'll go back to it as soon as my long lunch break ends. I need a fully working prototype before the end of the month and time is runnin!

No comments:

Post a Comment