- Home /
Question by
Maksim12332112 · Feb 06, 2021 at 07:49 PM ·
wallsrunning
Guys i want to add wallrunning in my game if you think you can help out here is my script
using System.Collections; using System.Collections.Generic; using UnityEngine;
public class tebrawtf : MonoBehaviour { public CharacterController controller;
public float walkSpeed = 15f;
public float runSpeed = 23f;
public float gravity = -19.62f;
public float jumpHeight = 3f;
public Transform groundCheck;
public float groundDistance = 0.4f;
public LayerMask groundMask;
float speed;
Vector3 velocity;
bool isGrounded;
bool midAirJump;
float runTimer;
// Update is called once per frame
void Update()
{
isGrounded = Physics.CheckSphere(groundCheck.position, groundDistance, groundMask);
if (isGrounded && velocity.y < 0)
{
velocity.y = -2f;
}
float x = Input.GetAxis("Horizontal");
float z = Input.GetAxis("Vertical");
if (z > 0)
{
runTimer += Time.deltaTime;
if (runTimer > 4)
speed = runSpeed;
}
else
{
speed = walkSpeed;
runTimer = 0;
}
Vector3 move = transform.right * x * walkSpeed + transform.forward * z * speed;
controller.Move(move * Time.deltaTime);
if (Input.GetButtonDown("Jump"))
{
if (isGrounded)
{
velocity.y = Mathf.Sqrt(jumpHeight * -2f * gravity); //your jumping code
midAirJump = true;
}
else if (midAirJump)
{
velocity.y = Mathf.Sqrt(jumpHeight * -2f * gravity); //your jumping code
midAirJump = false;
}
}
velocity.y += gravity * Time.deltaTime;
controller.Move(velocity * Time.deltaTime);
}
}
Comment
I'm not sure about this.. but you might be able to achieve wall climbing by modifying the direction of the gravity to be in a diagonal down direction towards the wall you are running on.. Or you could try to use parenting, but then you might stick to the wall.. but you could unparent if there is no input..
Your answer
Follow this Question
Related Questions
FPS Camera Collision 3 Answers
Wall only player can walk through 1 Answer
Player keeps bouncing off the walls 2 Answers
Help AI going through walls 0 Answers
Walking through objects 2 Answers