I want to add pointer that is always tracking certain object in a map. Like when dynamic objective is changing, I want pointer to new objective position to be displayed to a player.
Can anyone please suggest best way of doing this. It can be with UI elements or 3D objects.
You could wite an "API" which is basically just a script with some logic that lives statically in your program without being added to the game world.
ObjectTracker.lua
API = {objects = {}}
function API.Set(key, value)
API.objects[key] = value
end
function API.Get(key, value)
return API.objects[key]
end
function API.GetAll()
return API.objects
end
Then you can assign any other game object, like a script the ObjectTracker.lua as a property and use it like this:
local objectTracker= require(script:GetCustomProperty("ObjectTracker"))
objectTracker.Set("importantObject", myObject)
local importantObject = objectTracker.Get("importantObject")
for _, object in ipairs(objectTracker.GetAll()) do
print(object.name)
end
You can use the UI.GetScreenPosition(Vector3) to get the 2D position on screen of a point.
Thanks.