UnigineScript
The Language
Core Library
Engine Library
Node-Related Classes
GUI-Related Classes
Plugins Library
High-Level Systems
Samples
C++ API
API Reference
Integration Samples
Usage Examples
C++ Plugins
Content Creation
Materials
Unigine Material Library
Tutorials

PlayerSpectator Class

This class is used to create a free flying camera without a physical body. It is approximated with a sphere, which allows it to collide with objects (but it does not allow, for example, to push or interact with them). It can also accelerate and damp its velocity.

PlayerSpectator Class

This class inherits from Player

Members


PlayerSpectator ()

Constructor. Creates a new spectator with default properties.

float getAcceleration ()

Returns the current acceleration of the spectator. The default is 4 units per second squared.

Return value

Acceleration in units per second squared.

int getCollisionMask ()

Returns a collision mask of the spectators's collision sphere. Two objects collide, if they both have matching masks. The default is ~0.

Return value

Integer, each bit of which is a mask.

float getCollisionRadius ()

Returns radius of the spectators's collision sphere. The default is 0.3.

Return value

Radius of the collision sphere in units.

int getCollision ()

Returns a value indicating if collisions with spectator's sphere should be taken into account. The default is 1.

Return value

Positive number if collisions are taken into account; otherwise, 0.

float getContactDepth (int contact)

Returns penetration depth by the given contact.

Arguments

  • int contact - Contact number.

Return value

Penetration depth.

vec3 getContactNormal (int contact)

Returns a normal of the contact point, in world coordinates.

Arguments

  • int contact - Contact number.

Return value

Normal of the contact point.

Object getContactObject (int contact)

Returns an object participating in the contact with the player (used for collisions with physical object).

Arguments

  • int contact - Contact number.

Return value

Object in contact.

vec3 getContactPoint (int contact)

Returns world coordinates of the contact point.

Arguments

  • int contact - Contact number.

Return value

Contact point.

Shape getContactShape (int num)

Returns a shape that collided with the player.

Arguments

  • int num - Contact number.

Return value

Shape in contact.

int getContactSurface (int contact)

Returns the surface of the current object, which is in contact (used for collisions with non-physical object).

Arguments

  • int contact - Contact number.

Return value

Surface number.

float getDamping ()

Returns spectator's damping. The default is 8.

Return value

Damping.

float getMaxThetaAngle ()

Returns the maximum theta angle (zenith angle, also known as pitch angle) that determines how far downward the player can look. The higher the value, the further down the player can look. The default is 90.0 degrees.

Return value

The current maximum theta angle in degrees.

float getMaxVelocity ()

Returns the high velocity of the spectator, which is used while CONTROLS_RUN is pressed. The default is 4 units per second.

Return value

Velocity in units per second.

float getMinThetaAngle ()

Returns the minimum theta angle (zenith angle, also known as pitch angle) that determines how far upward the player can look. The lower the value, the further up the player can look. The default is -90 degrees.

Return value

The current minimum Theta angle in degrees.

float getMinVelocity ()

Returns the default velocity of the spectator. The default is 2 units per second.

Return value

Velocity in units per second.

int getNumContacts ()

Returns the number of contacts, in which the spectator's sphere participates.

Return value

Number of contacts.

float getPhiAngle ()

Returns the phi angle (azimuth angle, also known as yaw angle). This angle determines the horizontal viewing direction, i.e. left or right. Positive values rotate the player to the right; negative values rotate it to the left.

Return value

Phi angle value.

float getThetaAngle ()

Returns the theta angle (zenith angle, also known as pitch angle). This angle determines the vertical viewing direction, i.e. upwards or downwards. By a positive value, the player looks upwards; by a negative one - downwards. The value is clamped between the minimum and the maximum theta angle.

Return value

Theta angle value.

float getTurning ()

Returns a velocity of player turning. The default is 90 degrees per second.

Return value

Turning velocity in degrees per second.

vec3 getViewDirection ()

Returns the current viewing orientation of the player. The result is the same as using phi and theta angles, but this function returns a vector.

Return value

View direction vector.

void setAcceleration (float acceleration)

Sets an acceleration of the spectator.

Arguments

  • float acceleration - New acceleration in units per second squared. If a negative value is provided, 0 will be used instead.

void setCollisionMask (int mask)

Sets a collision mask for the spectators's collision sphere. Two objects collide, if they both have matching masks.

Arguments

  • int mask - Integer, each bit of which is a mask.

void setCollisionRadius (float radius)

Updates radius of the spectators's collision sphere.

Arguments

  • float radius - New radius of the collision sphere.

void setCollision (int mode)

Updates a value indicating if collisions with spectator's sphere should be taken into account.

Arguments

  • int mode - Positive number to allow collisions, 0 to let the spectator fly through objects.

void setDamping (float damping)

Sets spectator's damping.

Arguments

  • float damping - New damping.

void setMaxThetaAngle (float angle)

Sets the maximum theta angle (zenith angle, also known as pitch angle) that determines how far downward the player can look. The default is 90.0 degrees.

Arguments

  • float angle - New angle in degrees in range [0;90]. The higher the value, the further down the player can look.

void setMaxVelocity (float velocity)

Sets the high velocity of the spectator. Used while CONTROLS_RUN is pressed.

Arguments

  • float velocity - New velocity in units per second. If a negative value is provided, 0 will be used instead.

void setMinThetaAngle (float angle)

Sets the minimum theta angle (zenith angle, also known as pitch angle) that determines how far upward the player can look. The default is -90 degrees.

Arguments

  • float angle - New angle in degrees in range [-90;0]. The lower the value, the further up the player can look.

void setMinVelocity (float velocity)

Sets the default velocity of the spectator.

Arguments

  • float velocity - New velocity in units per second. If a negative value is provided, 0 will be used instead.

void setPhiAngle (float angle)

Sets the phi angle (azimuth angle, also known as yaw angle). This angle determines the horizontal viewing direction, i.e. left or right.

Arguments

  • float angle - New angle in degrees. Positive values rotate the player to the right; negative values rotate it to the left.

void setThetaAngle (float angle)

Sets the theta angle of the player (zenith angle, also known as pitch angle). This angle determines the vertical viewing direction, i.e. upwards or downwards. The value will be clamped between the minimum and the maximum theta angle.

Arguments

  • float angle - New angle in degrees in range [-90;90]. By a positive value, the player looks upward; by a negative one - downwards.

void setTurning (float velocity)

Sets a velocity of player turning.

Arguments

  • float velocity - Turning velocity in degrees per second. If a negative value is provided, 0 will be used instead.

void setViewDirection (vec3 direction)

Sets the viewing orientation of the player. The result is the same as using phi and theta angles, but this function takes a vector as an argument.

Arguments

  • vec3 direction - View direction vector.
Last update: 2017-07-03