💻
Coding for Creatives Extras
  • Hello
  • Templates & Shortcuts
    • Power of Negative 1
    • Modifiers
    • Start Codes
      • Processing Start Code
      • HTML, CSS, JavaScript Start Code
    • WASD Movement Code
      • Processing Example
      • Unity Example (3D)
      • Unity Example (2D Platformer)
    • Connecting Platforms
  • Useful Links
    • Share & Show Off
    • Software and Apps
    • Free & Affordable Game Assets
  • Exercises
    • Week 1
      • Week 1 Processing Exercise
    • Week 2
      • Week 2 Star Wars Name Exercise
      • Week 2 Mad Libs Exercise
    • Week 3
      • Week 3 Moving Squares Exercise
    • Week 4
      • Week 4-A Movement Using If Statements
      • Week 4-B Boundaries Using If Statements
      • Week 4-C Hover, Click, and Drag Effects
    • Week 5
      • Week 5-A Moving Shapes
      • Week 5-B Looping Arrays
      • Week 5-C Using User Input to Create Arrays
      • Week 5-D For and Foreach Loops in Unity
    • Week 6
      • Week 6-A Snake
      • Week 6-B 2D Character Movement (Unity)
    • Week 7
      • Week 7-A Mario Coin Catch (Unity)
      • Week 7-B Raycasting Example (Unity)
    • TouchDesigner Exercises
      • Colorful Text
      • Audio-Reactive 3D Shapes
      • TouchOSC
  • Glossary and Terms
    • Blank Space / Canvas Origin
    • Shapes / Primitives
    • Color
    • Movement
    • Control
    • Variables
      • Declaring Variables
      • Assigning a Variable
      • Using a Variable
      • Data Types
        • Floating Point or Float
        • Integer or Int
        • Boolean or Bool
        • String
      • Casting a Variable
    • Arrays
      • Creating Arrays
      • Assigning Values to Arrays
      • Using Array Elements
      • Multi-Dimensional Arrays
      • Common Errors
    • Conditional Statements (If/Else)
    • Operators
      • Relational Operators
      • Mathematical Operators
      • Logical Operators
    • Loops
      • While Loops
      • For Loops
      • Foreach Loops
    • Functions & Methods
      • Creating a Function
      • Calling or Invoking a Function
      • Parameters & Arguments
    • Interaction
      • Mouse Interaction
    • Objects, Classes & Libraries
      • Accessing Objects
    • Node-Based Programming
    • Packaging and Sharing
  • TouchDesigner Info
    • Overview
    • Popular TOPs
    • Popular CHOPs
    • Popular SOPs
    • Popular DATs
  • Arduino Info
    • Arduinos!
    • The Parts
    • The Setup
      • Using the Serial Connection
      • Output Component Setup Examples
      • Input Component Setup Examples
      • Create a Night Light
Powered by GitBook
On this page

Was this helpful?

  1. Templates & Shortcuts
  2. WASD Movement Code

Unity Example (3D)

You must either name your new script PlayerMovement.cs OR update this code after the word "class" to the name of your script.

This is code that uses WASD kets to move the object the script is added to.

It also rotates left and right using the arrow keys and jumps with the space bar.

For jump to work, be sure to add a Rigidbody component to the object. If the object falls over, in the Rigidbody component, free the X and Z rotations.

This code uses shortcuts. (See below the code.)

using UnityEngine;

public class PlayerMovement : MonoBehaviour
{
    public float moveSpeed = 10;
    public float rotateSpeed = 50;
    public float jumpHeight = 200;



    void Update()
    {
        // Translate / Move
        if (Input.GetKey(KeyCode.W) || Input.GetKey(KeyCode.UpArrow))
        {
            transform.Translate(Vector3.forward * moveSpeed * Time.deltaTime);
        }

        if (Input.GetKey(KeyCode.A))
        {
            transform.Translate(Vector3.left * moveSpeed * Time.deltaTime);
        }

        if (Input.GetKey(KeyCode.S) || Input.GetKey(KeyCode.DownArrow))
        {
            transform.Translate(Vector3.back * moveSpeed * Time.deltaTime);
        }

        if (Input.GetKey(KeyCode.D))
        {
            transform.Translate(Vector3.right * moveSpeed * Time.deltaTime);
        }



        // Rotate

        if (Input.GetKey(KeyCode.LeftArrow))

        {

            transform.Rotate(Vector3.down * rotateSpeed * Time.deltaTime);

        }

        

        if (Input.GetKey(KeyCode.RightArrow)) 

        {

            transform.Rotate(Vector3.up * rotateSpeed * Time.deltaTime);

        }



        // For jump to work, be sure to add a Rigidbody component to your player object

        if (Input.GetKeyDown(KeyCode.Space))

        {
            transform.GetComponent<Rigidbody>().AddForce(Vector3.up * jumpHeight);
        }
    }
}

Vector3 Shortcuts:

Shortcut

Equivalent

Vector3.up

Vector3(0, 1, 0)

Vector3.down

Vector3(0, -1, 0)

Vector3.left

Vector3(-1, 0, 0)

Vector3.right

Vector3(1, 0, 0)

Vector3.foward

Vector3(0, 0, 1)

Vector3.back

Vector3(0, 0, -1)

These can be multiplied and divided as an easy way to adjust the value on just one axis.

PreviousProcessing ExampleNextUnity Example (2D Platformer)

Last updated 4 years ago

Was this helpful?