|
TopDown Engine
v4.4
|
Public Types | |
| enum | AimControls { AimControls.Off, AimControls.PrimaryMovement, AimControls.SecondaryMovement, AimControls.Mouse, AimControls.Script, AimControls.SecondaryThenPrimaryMovement, AimControls.PrimaryThenSecondaryMovement, AimControls.CharacterRotateCameraDirection } |
| the list of possible control modes More... | |
| enum | RotationModes { RotationModes.Free, RotationModes.Strict2Directions, RotationModes.Strict4Directions, RotationModes.Strict8Directions } |
| the list of possible rotation modes More... | |
| enum | ReticleTypes { ReticleTypes.None, ReticleTypes.Scene, ReticleTypes.UI } |
| the possible types of reticles More... | |
Public Member Functions | |
| virtual void | ApplyAim () |
| virtual void | SetCurrentAim (Vector3 newAim, bool setAimAsLastNonNullMovement=false) |
| Aims the weapon towards a new point More... | |
| virtual Vector3 | GetReticlePosition () |
| Returns the position of the reticle More... | |
| virtual Vector3 | GetMousePosition () |
| Returns the current mouse position More... | |
| virtual void | RemoveReticle () |
| Removes any remaining reticle More... | |
| virtual void | AddAdditionalAngle (float addedAngle) |
| Adds additional angle to the weapon's rotation More... | |
| void | OnMMEvent (TopDownEngineEvent engineEvent) |
Public Member Functions inherited from MoreMountains.Tools.MMEventListener< TopDownEngineEvent > | |
| void | OnMMEvent (T eventType) |
Public Attributes | |
| AimControls | AimControl = AimControls.SecondaryMovement |
| the aim control mode More... | |
| bool | AimControlActive = true |
| if this is true, this script will be able to read input from its specified AimControl mode More... | |
| RotationModes | RotationMode = RotationModes.Free |
| the rotation mode More... | |
| float | WeaponRotationSpeed = 1f |
| the the speed at which the weapon reaches its new position. Set it to zero if you want movement to directly follow input More... | |
| float | MinimumAngle = -180f |
| the minimum angle at which the weapon's rotation will be clamped More... | |
| float | MaximumAngle = 180f |
| the maximum angle at which the weapon's rotation will be clamped More... | |
| float | MinimumMagnitude = 0.2f |
| the minimum threshold at which the weapon's rotation magnitude will be considered More... | |
| ReticleTypes | ReticleType = ReticleTypes.None |
| Defines whether the reticle is placed in the scene or in the UI. More... | |
| GameObject | Reticle |
| the gameobject to display as the aim's reticle/crosshair. Leave it blank if you don't want a reticle More... | |
| float | ReticleDistance |
| the distance at which the reticle will be from the weapon More... | |
| float | ReticleHeight |
| the height at which the reticle should position itself above the ground, when in Scene mode More... | |
| bool | ReticleAtMousePosition |
| if set to true, the reticle will be placed at the mouse's position (like a pointer) More... | |
| bool | RotateReticle = false |
| if set to true, the reticle will rotate on itself to reflect the weapon's rotation. If not it'll remain stable. More... | |
| bool | ReplaceMousePointer = true |
| if set to true, the reticle will replace the mouse pointer More... | |
| float | MouseDeadZoneRadius = 0.5f |
| the radius around the weapon rotation centre where the mouse will be ignored, to avoid glitches More... | |
| bool | DisplayReticle = true |
| if set to false, the reticle won't be added and displayed More... | |
| bool | MoveCameraTargetTowardsReticle = false |
| whether the camera target should be moved towards the reticle to provide a better vision of the possible target. If you don't have a reticle, it'll be moved towards your aim direction. More... | |
| float | CameraTargetOffset = 0.3f |
| the offset to apply to the camera target along the transform / reticle line More... | |
| float | CameraTargetMaxDistance = 10f |
| the maximum distance at which to move the camera target More... | |
| float | CameraTargetSpeed = 5f |
| the speed at which the camera target should be moved More... | |
| virtual GameObject | ReticleInstance => _reticle |
| the instance of the reticle in the scene, if this weapon has one More... | |
| virtual Weapon | TargetWeapon => _weapon |
Protected Member Functions | |
| virtual void | Start () |
| On Start(), we trigger the initialization More... | |
| virtual void | Initialization () |
| Grabs the weapon component, initializes the angle values More... | |
| virtual void | GetCurrentAim () |
| virtual void | Update () |
| Every frame, we compute the aim direction and rotate the weapon accordingly More... | |
| virtual void | LateUpdate () |
| On LateUpdate, resets any additional angle More... | |
| virtual void | DetermineWeaponRotation () |
| Determines the weapon's rotation More... | |
| virtual void | MoveReticle () |
| Moves the weapon's reticle More... | |
| virtual void | RotateWeapon (Quaternion newRotation, bool forceInstant=false) |
| Rotates the weapon, optionnally applying a lerp to it. More... | |
| virtual void | AimAt (Vector3 target) |
| virtual void | InitializeReticle () |
| If a reticle has been set, instantiates the reticle and positions it More... | |
| virtual void | MoveTarget () |
| This method defines how the character's camera target should move More... | |
| virtual void | HideReticle () |
| Hides (or shows) the reticle based on the DisplayReticle setting More... | |
| virtual void | HideMousePointer () |
| Hides or show the mouse pointer based on the settings More... | |
| void | OnDestroy () |
| On Destroy, we reinstate our cursor if needed More... | |
| virtual void | ResetAdditionalAngle () |
| Resets the additional angle More... | |
| virtual void | AutoDetectWeaponMode () |
| virtual void | OnEnable () |
| On enable we start listening for events More... | |
| virtual void | OnDisable () |
| On disable we stop listening for events More... | |
Protected Attributes | |
| Camera | _mainCamera |
| Vector2 | _lastNonNullMovement |
| Weapon | _weapon |
| Vector3 | _currentAim = Vector3.zero |
| Vector3 | _currentAimAbsolute = Vector3.zero |
| Quaternion | _lookRotation |
| Vector3 | _direction |
| float[] | _possibleAngleValues |
| Vector3 | _mousePosition |
| Vector3 | _lastMousePosition |
| float | _additionalAngle |
| Quaternion | _initialRotation |
| Plane | _playerPlane |
| GameObject | _reticle |
| Vector3 | _reticlePosition |
| Vector3 | _newCamTargetPosition |
| Vector3 | _newCamTargetDirection |
| bool | _initialized = false |
| Vector3 | _aimAtDirection |
| Quaternion | _aimAtQuaternion |
Properties | |
| virtual float | CurrentAngleAbsolute [get, protected set] |
| virtual Quaternion | CurrentRotation [get] |
| the weapon's current rotation More... | |
| virtual Vector3 | CurrentAim [get] |
| the weapon's current direction More... | |
| virtual Vector3 | CurrentAimAbsolute [get] |
| the weapon's current direction, absolute (flip independent) More... | |
| virtual float | CurrentAngle [get, protected set] |
| the current angle the weapon is aiming at More... | |
| virtual float | CurrentAngleRelative [get] |
| the current angle the weapon is aiming at, adjusted to compensate for the current orientation of the character More... | |
|
virtual |
Adds additional angle to the weapon's rotation
| addedAngle |
|
protectedvirtual |
Reimplemented in MoreMountains.TopDownEngine.WeaponAim3D.
|
virtual |
|
protectedvirtual |
|
protectedvirtual |
Determines the weapon's rotation
Reimplemented in MoreMountains.TopDownEngine.WeaponAim2D, and MoreMountains.TopDownEngine.WeaponAim3D.
|
protectedvirtual |
Reimplemented in MoreMountains.TopDownEngine.WeaponAim2D, and MoreMountains.TopDownEngine.WeaponAim3D.
|
virtual |
Returns the current mouse position
|
virtual |
Returns the position of the reticle
|
protectedvirtual |
Hides or show the mouse pointer based on the settings
|
protectedvirtual |
Hides (or shows) the reticle based on the DisplayReticle setting
|
protectedvirtual |
Grabs the weapon component, initializes the angle values
Reimplemented in MoreMountains.TopDownEngine.WeaponAim3D, and MoreMountains.TopDownEngine.WeaponAim2D.
|
protectedvirtual |
If a reticle has been set, instantiates the reticle and positions it
Reimplemented in MoreMountains.TopDownEngine.WeaponAim2D, and MoreMountains.TopDownEngine.WeaponAim3D.
|
protectedvirtual |
On LateUpdate, resets any additional angle
|
protectedvirtual |
Moves the weapon's reticle
Reimplemented in MoreMountains.TopDownEngine.WeaponAim2D, and MoreMountains.TopDownEngine.WeaponAim3D.
|
protectedvirtual |
This method defines how the character's camera target should move
Reimplemented in MoreMountains.TopDownEngine.WeaponAim2D, and MoreMountains.TopDownEngine.WeaponAim3D.
|
protected |
On Destroy, we reinstate our cursor if needed
|
protectedvirtual |
On disable we stop listening for events
|
protectedvirtual |
On enable we start listening for events
| void MoreMountains.TopDownEngine.WeaponAim.OnMMEvent | ( | TopDownEngineEvent | engineEvent | ) |
|
virtual |
Removes any remaining reticle
|
protectedvirtual |
Resets the additional angle
|
protectedvirtual |
Rotates the weapon, optionnally applying a lerp to it.
| newRotation | New rotation. |
|
virtual |
Aims the weapon towards a new point
| newAim | New aim. |
Reimplemented in MoreMountains.TopDownEngine.WeaponAim3D, and MoreMountains.TopDownEngine.WeaponAim2D.
|
protectedvirtual |
On Start(), we trigger the initialization
|
protectedvirtual |
Every frame, we compute the aim direction and rotate the weapon accordingly
Reimplemented in MoreMountains.TopDownEngine.WeaponAim2D, and MoreMountains.TopDownEngine.WeaponAim3D.
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
| AimControls MoreMountains.TopDownEngine.WeaponAim.AimControl = AimControls.SecondaryMovement |
the aim control mode
| bool MoreMountains.TopDownEngine.WeaponAim.AimControlActive = true |
if this is true, this script will be able to read input from its specified AimControl mode
| float MoreMountains.TopDownEngine.WeaponAim.CameraTargetMaxDistance = 10f |
the maximum distance at which to move the camera target
| float MoreMountains.TopDownEngine.WeaponAim.CameraTargetOffset = 0.3f |
the offset to apply to the camera target along the transform / reticle line
| float MoreMountains.TopDownEngine.WeaponAim.CameraTargetSpeed = 5f |
the speed at which the camera target should be moved
| bool MoreMountains.TopDownEngine.WeaponAim.DisplayReticle = true |
if set to false, the reticle won't be added and displayed
| float MoreMountains.TopDownEngine.WeaponAim.MaximumAngle = 180f |
the maximum angle at which the weapon's rotation will be clamped
| float MoreMountains.TopDownEngine.WeaponAim.MinimumAngle = -180f |
the minimum angle at which the weapon's rotation will be clamped
| float MoreMountains.TopDownEngine.WeaponAim.MinimumMagnitude = 0.2f |
the minimum threshold at which the weapon's rotation magnitude will be considered
| float MoreMountains.TopDownEngine.WeaponAim.MouseDeadZoneRadius = 0.5f |
the radius around the weapon rotation centre where the mouse will be ignored, to avoid glitches
| bool MoreMountains.TopDownEngine.WeaponAim.MoveCameraTargetTowardsReticle = false |
whether the camera target should be moved towards the reticle to provide a better vision of the possible target. If you don't have a reticle, it'll be moved towards your aim direction.
| bool MoreMountains.TopDownEngine.WeaponAim.ReplaceMousePointer = true |
if set to true, the reticle will replace the mouse pointer
| GameObject MoreMountains.TopDownEngine.WeaponAim.Reticle |
the gameobject to display as the aim's reticle/crosshair. Leave it blank if you don't want a reticle
| bool MoreMountains.TopDownEngine.WeaponAim.ReticleAtMousePosition |
if set to true, the reticle will be placed at the mouse's position (like a pointer)
| float MoreMountains.TopDownEngine.WeaponAim.ReticleDistance |
the distance at which the reticle will be from the weapon
| float MoreMountains.TopDownEngine.WeaponAim.ReticleHeight |
the height at which the reticle should position itself above the ground, when in Scene mode
| virtual GameObject MoreMountains.TopDownEngine.WeaponAim.ReticleInstance => _reticle |
the instance of the reticle in the scene, if this weapon has one
| ReticleTypes MoreMountains.TopDownEngine.WeaponAim.ReticleType = ReticleTypes.None |
Defines whether the reticle is placed in the scene or in the UI.
| bool MoreMountains.TopDownEngine.WeaponAim.RotateReticle = false |
if set to true, the reticle will rotate on itself to reflect the weapon's rotation. If not it'll remain stable.
| RotationModes MoreMountains.TopDownEngine.WeaponAim.RotationMode = RotationModes.Free |
the rotation mode
| float MoreMountains.TopDownEngine.WeaponAim.WeaponRotationSpeed = 1f |
the the speed at which the weapon reaches its new position. Set it to zero if you want movement to directly follow input
|
get |
the weapon's current direction
|
get |
the weapon's current direction, absolute (flip independent)
|
getprotected set |
the current angle the weapon is aiming at
|
getprotected set |
|
get |
the current angle the weapon is aiming at, adjusted to compensate for the current orientation of the character
|
get |
the weapon's current rotation