Hello, I’m trying to make a BASIC FPS game - Shooting some zombies and stuff.
I tried to look around the net, and found some SPRINTING SCRIPT wich could be useful for a escape when a zombie is near you.
I found this code, and added, but how can I make a ‘button’ command to sprint? Like, if I want to have ‘SHIFT’ as the key to ‘SPRINTING’
Thanks very much if you can help.
LONG CODE[EXIST WALKING ETC]
private var speed = 6.0;
var aimSpeed = 2.0;
var sprintSpeed = 10.0;
private var canSprint : boolean = true;
var sprintJumpSpeed = 8.0;
var normSpeed = 6.0;
var crouchSpeed = 6.0;
var crouchDeltaHeight = 1.0;
var jumpSpeed = 8.0;
var normJumpSpeed = 8.0;
var gravity = 20.0;
private var mainCamera : GameObject;
private var weaponCamera : GameObject;
static var crouching : boolean = false;
private var stopCrouching : boolean = false;
private var standardCamHeight : float;
private var crouchingCamHeight : float;
private var moveDirection = Vector3.zero;
private var grounded : boolean = false;
static var walking : boolean = false;
function Start() {
speed = normSpeed;
mainCamera = gameObject.FindWithTag(“MainCamera”);
weaponCamera = gameObject.FindWithTag(“WeaponCamera”);
crouching = false;
standardCamHeight = mainCamera.transform.localPosition.y;
crouchingCamHeight = standardCamHeight - crouchDeltaHeight;
}
function Update() {
if(mainCamera.transform.localPosition.y > standardCamHeight){
mainCamera.transform.localPosition.y = standardCamHeight;
} else if(mainCamera.transform.localPosition.y < crouchingCamHeight){
mainCamera.transform.localPosition.y = crouchingCamHeight;
}
if(weaponCamera.transform.localPosition.y > standardCamHeight){
weaponCamera.transform.localPosition.y = standardCamHeight;
} else if(weaponCamera.transform.localPosition.y < crouchingCamHeight){
weaponCamera.transform.localPosition.y = crouchingCamHeight;
}
if (Input.GetButtonDown (“Crouch”)){
if(crouching){
stopCrouching = true;
normalSpeed();
return;
}
if(!crouching)
crouch();
}
if(crouching){
if(mainCamera.transform.localPosition.y > crouchingCamHeight){
if(mainCamera.transform.localPosition.y - (crouchDeltaHeightTime.deltaTime8) < crouchingCamHeight){
mainCamera.transform.localPosition.y = crouchingCamHeight;
} else {
mainCamera.transform.localPosition.y -= crouchDeltaHeightTime.deltaTime8;
}
}
if(weaponCamera.transform.localPosition.y > crouchingCamHeight){
if(weaponCamera.transform.localPosition.y - (crouchDeltaHeightTime.deltaTime8) < crouchingCamHeight){
weaponCamera.transform.localPosition.y = crouchingCamHeight;
} else {
weaponCamera.transform.localPosition.y -= crouchDeltaHeightTime.deltaTime8;
}
}
} else {
if(mainCamera.transform.localPosition.y < standardCamHeight){
if(mainCamera.transform.localPosition.y + (crouchDeltaHeightTime.deltaTime8) > standardCamHeight){
mainCamera.transform.localPosition.y = standardCamHeight;
} else {
mainCamera.transform.localPosition.y += crouchDeltaHeightTime.deltaTime8;
}
}
if(weaponCamera.transform.localPosition.y < standardCamHeight){
if(weaponCamera.transform.localPosition.y - (crouchDeltaHeightTime.deltaTime8) > standardCamHeight){
weaponCamera.transform.localPosition.y = standardCamHeight;
} else {
weaponCamera.transform.localPosition.y += standardCamHeightTime.deltaTime8;
}
}
}
}
function FixedUpdate() {
if (grounded) {
// We are grounded, so recalculate movedirection directly from axes
moveDirection = new Vector3(Input.GetAxis(“Horizontal”), 0, Input.GetAxis(“Vertical”));
moveDirection = transform.TransformDirection(moveDirection);
moveDirection *= speed;
if (Input.GetButton (“Jump”)) {
moveDirection.y = jumpSpeed;
if(crouching){
stopCrouching = true;
normalSpeed();
}
}
}
// Apply gravity
moveDirection.y -= gravity * Time.deltaTime;
// Move the controller
var controller : CharacterController = GetComponent(CharacterController);
var flags = controller.Move(moveDirection * Time.deltaTime);
grounded = (flags CollisionFlags.CollidedBelow) != 0;
if((Mathf.Abs(moveDirection.x) > 0) grounded || (Mathf.Abs(moveDirection.z) > 0 grounded)){
if(!walking){
walking = true;
BroadcastMessage(“walking”, SendMessageOptions.DontRequireReceiver);
}
} else if(walking){
walking = false;
BroadcastMessage(“stopWalking”, SendMessageOptions.DontRequireReceiver);
}
}
@script RequireComponent(CharacterController)
function aiming() {
speed = aimSpeed;
}
function crouch() {
speed = crouchSpeed;
//mainCamera.transform.position.y -= crouchDeltaHeight;
//weaponCamera.transform.position.y -= crouchDeltaHeight;
//BroadcastMessage (“crouching”, SendMessageOptions.DontRequireReceiver);
this.GetComponent(CharacterController).height -= crouchDeltaHeight;
this.GetComponent(CharacterController).center -= Vector3(0,crouchDeltaHeight/2, 0);
crouching = true;
}
function normalSpeed () {
if(stopCrouching){
crouching = false;
//mainCamera.transform.position.y += crouchDeltaHeight;
//weaponCamera.transform.position.y += crouchDeltaHeight;
this.GetComponent(“CharacterController”).height += crouchDeltaHeight;
this.GetComponent(“CharacterController”).center += Vector3(0,crouchDeltaHeight/2, 0);
BroadcastMessage(“stopWalking”, SendMessageOptions.DontRequireReceiver);
stopCrouching = false;
} else if(crouching){
speed = crouchSpeed;
return;
}
speed = normSpeed;
jumpSpeed = normJumpSpeed;
}
function sprinting () {
if(crouching){
crouching = false;
//mainCamera.transform.position.y += crouchDeltaHeight;
//weaponCamera.transform.position.y += crouchDeltaHeight;
this.GetComponent(CharacterController).height += crouchDeltaHeight;
this.GetComponent(CharacterController).center += Vector3(0,crouchDeltaHeight/2, 0);
}
if(canSprint){
speed = sprintSpeed;
jumpSpeed = sprintJumpSpeed;
}
}