class LayerPrefabPlacementBase
(Niantic.Lightship.Maps.MapLayers.Components.BaseTypes.LayerPrefabPlacementBase)
Overview
Base class for all MapLayerComponent s that instantiate objects from a given prefab.
template <T>
class LayerPrefabPlacementBase: Niantic.Lightship.Maps.MapLayers.Components.BaseTypes.MapLayerComponent {
public:
// methods
PooledObject<T> PlaceInstance(in LatLng position, string instanceName = null);
virtual PooledObject<T> PlaceInstance(
in LatLng position,
in Quaternion rotation,
string instanceName = null
);
PooledObject<T> PlaceInstance(in Vector3 position, string instanceName = null);
PooledObject<T> PlaceInstance(
in Vector3 position,
in Quaternion rotation,
string instanceName = null
);
virtual override void Initialize(
LightshipMapView lightshipMapView,
GameObject parent
);
virtual override void OnMapOriginChanged();
protected:
// methods
virtual abstract Transform GetTransform(T instance) = 0;
virtual abstract GameObject GetGameObject(T instance) = 0;
virtual void OnObjectPoolAcquire(PooledObject<T> pooledObject);
virtual void OnObjectPoolRelease(T instance);
virtual Vector3 GetObjectScale(double mapRadius);
virtual Quaternion GetObjectRotation(in Quaternion rotation);
virtual Vector3 GetObjectPosition(in LatLng location);
};
// direct descendants
template <T>
class LayerMonoBehaviourPlacement;
Inherited Members
public:
// methods
virtual void Initialize(LightshipMapView lightshipMapView, GameObject parent);
virtual abstract void OnMapOriginChanged() = 0;
```cs
protected:
// fields
LightshipMapView LightshipMapView;
GameObject ParentMapLayer;
Detailed Documentation
Base class for all MapLayerComponent s that instantiate objects from a given prefab.
Parameters:
T
- The prefab's type
Methods
GetTransform
virtual abstract Transform GetTransform(T instance) = 0
Classes derived from LayerPrefabPlacementBase<T> should implement this method by returning the Transform of an object placed by that derived class.
Parameters:
instance
- An object whose Transform is returned
Returns:
The Transform belonging to placed object instance
GetGameObject
virtual abstract GameObject GetGameObject(T instance) = 0
Classes derived from LayerPrefabPlacementBase<T> should implement this method by returning the GameObject of an object placed by that derived class.
Parameters:
instance
- An object whose GameObject is returned
Returns:
The GameObject belonging to placed object instance
OnObjectPoolAcquire
virtual void OnObjectPoolAcquire(PooledObject<T> pooledObject)
Called when an object is acquired from the ObjectPool<T>. This object may be newly instantiated or an instance reused from the pool.
Parameters:
pooledObject
- The pooled object handle
OnObjectPoolRelease
virtual void OnObjectPoolRelease(T instance)
Called when an object is released into the ObjectPool<T>
Parameters:
instance
- The instance being released
GetObjectScale
virtual Vector3 GetObjectScale(double mapRadius)
Gets a local scale for object instances. If "scale with map radius" is set, this scale will be based on the LightshipMapView 's viewable map radius.
Parameters:
mapRadius
- The map's radius
Returns:
A local scale that will be applied to placed objects
GetObjectRotation
virtual Quaternion GetObjectRotation(in Quaternion rotation)
Gets an instantiated object's local rotation. This method should be overridden when customizing the orientation of placed object instances.
Parameters:
rotation
- The local rotation associated with this object
Returns:
A new local rotation that will be applied to this object
GetObjectPosition
virtual Vector3 GetObjectPosition(in LatLng location)
Gets an instantiated object's position in the Unity scene's world space. This method should be overridden when customizing the position of placed object instances.
Parameters:
location
- The location associated with this object
Returns:
A world space position applied to this object
PlaceInstance
PooledObject<T> PlaceInstance(in LatLng position, string instanceName = null)
Places an instance of this component's prefab at a given LatLng coordinate.
Parameters:
position
- The location to place the instance
instanceName
- An optional name to assign to the instance
Returns:
An instance placed at the desired LatLng
PlaceInstance
virtual PooledObject<T> PlaceInstance(
in LatLng position,
in Quaternion rotation,
string instanceName = null
)
Places an instance of this component's prefab at a given LatLng coordinate.
Parameters:
position
- The location to place the instance
rotation
- A local rotation applied to the placed instance
instanceName
- An optional name to assign to the instance
Returns:
An instance placed at the desired LatLng
PlaceInstance
PooledObject<T> PlaceInstance(in Vector3 position, string instanceName = null)
Places an instance of this component's prefab at a given point in the Unity scene's world space.
Parameters:
position
- The location to place the instance
instanceName
- An optional name to assign to the instance
Returns:
An instance placed at the desired position
PlaceInstance
PooledObject<T> PlaceInstance(
in Vector3 position,
in Quaternion rotation,
string instanceName = null
)
Places an instance of this component's prefab at a given point in the Unity scene's world space.
Parameters:
position
- The location to place the instance
rotation
- A local rotation applied to the placed instance
instanceName
- An optional name to assign to the instance
Returns:
An instance placed at the desired position
Initialize
virtual override void Initialize(
LightshipMapView lightshipMapView,
GameObject parent
)
Called from the LightshipMapView associated with this component's MapLayer at startup.
OnMapOriginChanged
virtual override void OnMapOriginChanged()
Called from this component's MapLayer when its LightshipMapView has been repositioned to the scene's origin.