Selectable nodes require various types of setup. Before it is possible to select things, it is necessary to have some kind of system that knows what things are selectable. For example, it is probably not desired to have every tree in a forest selectable.
Once a system has been chosen, further features are desirable:
- A developer command, such as an Asset Library command, to make some object selectable
- Deciding how selectable items should be highlighted in the viewport
- Capability of using the command from the Asset Library's command interface to make things selectable automatically when added from the library
- Automatically setting up players and creatures to be selectable
Telling the Client once you have something that knows about selectable things, you need to write the communication portion of the system to notify the client so it knows those things are selectable. You might do this during login to an area, or write something more complex based on proximity so that you do not tell the client about things it may never need to know are selectable.
Some sort of caching mechanism on the client is always a good idea for these types of systems.
For Hero's Journey, the highlighting of selectable items is accomplished in the HJCursorClassMethods script. This is a game-specific override script for the CURSOR system node. It accomplishes this by (for nodes that support the properties) changing the Ambient and Diffuse lighting for the node.
Mouse Events on a Selectable Node
If you still have the HE_Mouse input layer active, then calls are being made to the INPUT system node. If you have implemented your own mouse input layer, then the INPUT system node is only called if you implemented calls to it to notify it about the various mouse events. Using your client cache, you can check whether or node is selectable or not and then do whatever you want about the click event.