UxrProjectileDeflect Class

Component that, added to a GameObject with a collider, will allow to deflect shots coming from UxrProjectileSource components.

Inheritance Hierarchy

Namespace: UltimateXR.Mechanics.Weapons
Assembly: UltimateXR (in UltimateXR.dll) Version:



public class UxrProjectileDeflect : UxrGrabbableObjectComponent<UxrProjectileDeflect>

The UxrProjectileDeflect type exposes the following members.


Public methodUxrProjectileDeflect


Public propertyAudioDeflect Gets the sound to play when a projectile was deflected.
Public propertyCollideLayersAddOnReflect Optional layer mask to add to the collider after a projectile was deflected.
Public propertyDecalFadeoutDuration Gets the decal fadeout duration in seconds.
Public propertyDecalLife Gets the decal life in seconds after which it will fade out and be destroyed.
Public propertyDecalOnReflect Gets the decal to instantiate when a projectile was deflected.
Protected propertyIsGrabbableObjectRequired The grabbable object is not required. When it is present it will be used to assign the Owner so that the damage will be attributed to the actor instead of the original source. (Overrides UxrGrabbableObjectComponent<T>.IsGrabbableObjectRequired.)
Public propertyOwner Gets the owner in case the deflection object is part of an avatar or can be grabbed.
Public propertyTwoSidedDecal Gets whether the decal requires to generate another copy on the other side.
Public propertyTwoSidedDecalThickness Gets the object thickness in order to know how far the other side is to generate the copy on the backside of the impact.


Protected methodOnObjectGrabbed Called when the object was grabbed. Will change the Owner. (Overrides UxrGrabbableObjectComponent<T>.OnObjectGrabbed(UxrManipulationEventArgs).)
Protected methodOnObjectPlaced Called when the object was released. Will reset the Owner. (Overrides UxrGrabbableObjectComponent<T>.OnObjectPlaced(UxrManipulationEventArgs).)
Protected methodOnObjectReleased Called when the object was released. Will reset the Owner. (Overrides UxrGrabbableObjectComponent<T>.OnObjectReleased(UxrManipulationEventArgs).)
Protected methodStart Initializes the component. (Overrides UxrComponent.Start().)


Public eventProjectileDeflected Event called when a projectile got deflected after hitting the object.

Extension Methods

Public Extension MethodCheckSetEnabled Enables/disabled the component if it isn’t enabled already. (Defined by MonoBehaviourExt.)
Public Extension MethodGetOrAddComponent<T> Gets the Component of a given type. If it doesn’t exist, it is added to the GameObject. (Defined by ComponentExt.)
Public Extension MethodGetPathUnderScene Gets the full path under current scene, including all parents, but scene name, for the given component. (Defined by ComponentExt.)
Public Extension MethodGetSceneUid Gets an unique identifier string for the given component. (Defined by ComponentExt.)
Public Extension MethodGetUniqueScenePath Gets an unique path in the scene for the given component. It will include scene name, sibling and component indices to make it unique. (Defined by ComponentExt.)
Public Extension MethodLoopCoroutine Creates a coroutine that simplifies executing a loop during a certain amount of time. (Defined by MonoBehaviourExt.)
Public Extension MethodSafeGetComponentInParent<T> Gets the Component of a given type in the GameObject or any of its parents. It also works on prefabs, where regular GetComponentInParent(Type, Boolean) will not work: https://issuetracker.unity3d.com/issues/getcomponentinparent-is-returning-null-when-the-gameobject-is-a-prefab (Defined by ComponentExt.)
Public Extension MethodShowInInspector(Boolean)Overloaded.
Controls whether to show the current object in the inspector. (Defined by ObjectExt.)
Public Extension MethodShowInInspector(Boolean, Boolean)Overloaded.
Controls whether to show the current object in the inspector and whether it is editable. (Defined by ObjectExt.)
Public Extension MethodThrowIfNull Throws an exception if the object is null. (Defined by ObjectExt.)

See Also


UltimateXR.Mechanics.Weapons Namespace