I am new to codeing. So I was wondering if somebody could be as kind as to share their script with me.Or give me the link to a script. Preferabley Java script. Thanks in advance?
Take a course on scripting maybe?
well, here is my answer to movement with the ability to sprint. First you need to set up the shift button: Go to >Edit >Project Settings >Input. Once you are there, make the size under the axis text 16 or one more than it was. The default will be Jump, rename it to RightShift. Beside the “positive button” text, type " right shift". Then make a C# script
called move. Then copy this script in that script. Hope this helps…
using UnityEngine;
using System.Collections;
public class move : MonoBehaviour {
//Author :Electric Fountain Studios
//Getting Player
public GameObject player;
//Declaring Variables
public float movementspeed = 7.5f;
public float mouseSensitivity = 5.0f;
float verticleRotation = 0;
public float mouseRange = 60.0f;
public float jumpSpeed = 7.5f;
public float verticleVelocity = 0;
float maintainSpeedAtZero = 0.0f;
float sprint;
//Calling Character Controller
CharacterController characterController;
void Start () {
//Locking Cursor
Screen.lockCursor = true;
characterController = GetComponent<CharacterController>();
}
void Update () {
//Rotation
float rotleftright = Input.GetAxis ("Mouse X")* mouseSensitivity;
transform.Rotate(0, rotleftright, 0);
verticleRotation -= Input.GetAxis("Mouse Y")* mouseSensitivity;
verticleRotation = Mathf.Clamp(verticleRotation, -mouseRange, mouseRange);
Camera.main.transform.localRotation = Quaternion.Euler(verticleRotation, 0, 0);
//Sprinting
if(Input.GetButton("RightShift") ) {
sprint = Mathf.Sqrt(10.0f);
}else{
sprint = sprint - sprint;
}
//Movement
float forwardSpeed = Input.GetAxis("Vertical")*movementspeed + sprint;
float sideSpeed = Input.GetAxis("Horizontal")*movementspeed;
verticleVelocity += Physics.gravity.y * Time.deltaTime;
if(characterController.isGrounded && Input.GetButtonDown("Jump") ) {
verticleVelocity = jumpSpeed;
}
Vector3 speed = new Vector3 ( sideSpeed, verticleVelocity , forwardSpeed );
speed = transform.rotation * speed;
characterController.Move( speed * Time.deltaTime );
}
}
Keep a temporary variable to act as your final speed, and a constant that is your normal speed, along with another variable to act as a multiplier.
A simple example:
var NaturalSpeed = 10;
var tempSpeed : float;
var SpeedMultiplier = 1.2; // for 20% speed increase while sprinting
var moveDirection : Vector3; //this determines which direction we should be moving towards
function Update()
{
moveDirection = Vector3.zero; //this rests our move direction to nothing so we wouldn't move unless movement keys were pressed
tempSpeed = NaturalSpeed; //this rests our speed back to natural speed
//this is just a simple movement check for demonstrating sprint; use your own methods of course
moveDirection.x += Input.GetAxis("Horizontal");
moveDirection.z += Input.GetAxis("Vertical");
if(Input.GetKey(KeyCode.LeftShift)) //this checks to see if the player is holding left shift
{
tempSpeed *= SpeedMultiplier; //this increases our speed by the multiplier
}
transform.Translate(moveDirection.normalized * tempSpeed * Time.deltaTime); //this moves our player to the correct direction at the determined speed (sprinted or not), smoothed over time
}