Files
UltimateFishing/Assets/Scripts/Assembly-CSharp/vp_CapsuleController.cs
2026-02-21 16:45:37 +08:00

73 lines
1.6 KiB
C#

using UnityEngine;
[RequireComponent(typeof(Rigidbody))]
[RequireComponent(typeof(CapsuleCollider))]
public class vp_CapsuleController : vp_Controller
{
protected CapsuleCollider m_CapsuleCollider;
protected CapsuleCollider CapsuleCollider
{
get
{
if (m_CapsuleCollider == null)
{
m_CapsuleCollider = base.Collider as CapsuleCollider;
if (m_CapsuleCollider != null && m_CapsuleCollider.isTrigger)
{
m_CapsuleCollider = null;
}
}
return m_CapsuleCollider;
}
}
protected override float OnValue_Radius
{
get
{
return CapsuleCollider.radius;
}
}
protected override float OnValue_Height
{
get
{
return CapsuleCollider.height;
}
}
protected override void InitCollider()
{
m_NormalHeight = CapsuleCollider.height;
CapsuleCollider.center = (m_NormalCenter = m_NormalHeight * (Vector3.up * 0.5f));
CapsuleCollider.radius = m_NormalHeight * 0.25f;
m_CrouchHeight = m_NormalHeight * PhysicsCrouchHeightModifier;
m_CrouchCenter = m_NormalCenter * PhysicsCrouchHeightModifier;
base.Collider.transform.localPosition = Vector3.zero;
}
protected override void RefreshCollider()
{
if (base.Player.Crouch.Active && (!MotorFreeFly || base.Grounded))
{
CapsuleCollider.height = m_NormalHeight * PhysicsCrouchHeightModifier;
CapsuleCollider.center = m_NormalCenter * PhysicsCrouchHeightModifier;
}
else
{
CapsuleCollider.height = m_NormalHeight;
CapsuleCollider.center = m_NormalCenter;
}
}
public override void EnableCollider(bool isEnabled = true)
{
if (CapsuleCollider != null)
{
CapsuleCollider.enabled = isEnabled;
}
}
}