void Awake() { m_Rigidbody = GetComponent <PlayerReferences>().rigRigidbody; m_ClimbInfluencer = null; m_CollisionCorrection = Vector3.zero; }
public void Grab(PlayerInput_Interactor grabScript) { if (GrabTransform != null) { GrabTransform.GetComponent <PlayerInput_Interactor>().ForceDrop(); } GrabTransform = grabScript.transform; }
public void Grab(PlayerInput_Interactor grabScript) { ChangeLayerOfAllColliders(LayerMask.NameToLayer("DontHitPlayer")); if (GrabInteractor != null) { GrabInteractor.ForceDrop(); } GrabInteractor = grabScript; OnGrab?.Invoke(this, grabScript); }
public void AddInfluencer(PlayerInput_Interactor NewInfluencer) { if (ClimbInfluencers.Contains(NewInfluencer)) { return; } ClimbInfluencers.Add(NewInfluencer); Rigidbody.useGravity = false; GravityColliderScript.CollisionStatusChanged += HandleCollision; ResetReferences(); }
public void Drop() { if (GrabInteractor != null) { OnDrop?.Invoke(this, GrabInteractor); var tempTransform = GrabInteractor; // Do this to prevent an endless loop of dropping GrabInteractor = null; tempTransform.GetComponent <PlayerInput_Interactor>().ForceDrop(); } ChangeLayerOfAllColliders(InitialLayer); }
public void RemoveInfluencer(PlayerInput_Interactor InfluencerToRemove) { if (m_ClimbInfluencer != InfluencerToRemove) { return; } m_ClimbInfluencer = null; GravityColliderScript.CollisionStatusChanged -= HandleCollision; m_Rigidbody.useGravity = true; m_CollisionCorrection = Vector3.zero; m_Colliding = false; m_Rigidbody.AddForce(-3f * InfluencerToRemove.velocities.Velocity, ForceMode.VelocityChange); // fling }
public void RemoveInfluencer(PlayerInput_Interactor NewInfluencer) { if (ClimbInfluencers.Contains(NewInfluencer)) { GravityColliderScript.CollisionStatusChanged -= HandleCollision; ClimbInfluencers.Remove(NewInfluencer); } if (ClimbInfluencers.Count == 0) { Rigidbody.useGravity = true; CollisionCorrection = Vector3.zero; Colliding = false; } }
public void AddInfluencer(PlayerInput_Interactor NewInfluencer) { if (m_ClimbInfluencer == NewInfluencer) { return; } if (m_ClimbInfluencer == null) { GravityColliderScript.CollisionStatusChanged += HandleCollision; } m_ClimbInfluencer = NewInfluencer; m_Rigidbody.useGravity = false; m_Rigidbody.velocity = Vector3.zero; ResetReferences(); }