63 lines
1.4 KiB
C#
63 lines
1.4 KiB
C#
using System;
|
|
using UnityEngine;
|
|
|
|
[Serializable]
|
|
public class crouch_0020and_0020run : MonoBehaviour
|
|
{
|
|
public float walkSpeed;
|
|
|
|
public float crchSpeed;
|
|
|
|
public float runSpeed;
|
|
|
|
private CharacterMotor chMotor;
|
|
|
|
private Transform tr;
|
|
|
|
private float dist;
|
|
|
|
public crouch_0020and_0020run()
|
|
{
|
|
walkSpeed = 7f;
|
|
crchSpeed = 3f;
|
|
runSpeed = 20f;
|
|
}
|
|
|
|
public virtual void Start()
|
|
{
|
|
chMotor = (CharacterMotor)GetComponent(typeof(CharacterMotor));
|
|
tr = transform;
|
|
CharacterController characterController = (CharacterController)GetComponent(typeof(CharacterController));
|
|
dist = characterController.height / 2f;
|
|
}
|
|
|
|
public virtual void Update()
|
|
{
|
|
float to = 1f;
|
|
float maxForwardSpeed = walkSpeed;
|
|
if ((chMotor.grounded && Input.GetKey("left shift")) || Input.GetKey("right shift"))
|
|
{
|
|
maxForwardSpeed = runSpeed;
|
|
}
|
|
if (Input.GetKey("c"))
|
|
{
|
|
to = 0.5f;
|
|
maxForwardSpeed = crchSpeed;
|
|
}
|
|
chMotor.movement.maxForwardSpeed = maxForwardSpeed;
|
|
float y = tr.localScale.y;
|
|
float y2 = Mathf.Lerp(tr.localScale.y, to, 5f * Time.deltaTime);
|
|
Vector3 localScale = tr.localScale;
|
|
float num = (localScale.y = y2);
|
|
Vector3 vector = (tr.localScale = localScale);
|
|
float y3 = tr.position.y + dist * (tr.localScale.y - y);
|
|
Vector3 position = tr.position;
|
|
float num2 = (position.y = y3);
|
|
Vector3 vector3 = (tr.position = position);
|
|
}
|
|
|
|
public virtual void Main()
|
|
{
|
|
}
|
|
}
|