error CS1061

I am having this error:
Assets/Scripts/PlayerController.cs(48,44): error CS1061: ‘Transform’ does not contain a definition for ‘foward’ and no accessible extension method ‘foward’ accepting a first argument of type ‘Transform’ could be found (are you missing a using directive or an assembly reference?)

I have tried to solve this problem myself and have looked at forums for this error and I still cannot solve this problem can someone help me solve the error

You have simply misspelled “forward”.

Is your IDE set up properly to give you IntelliSense/autocomplete?

1 Like

It didn’t fix the error, I don’t think it was a misspell.

You sure? What does your error say now? Because earlier it pretty clearly said “foward” which is a misspell.

If there’s a different error now, it simply means the compiler got further in the compilation process and reached another error (which already existed).

Assets/Scripts/PlayerController.cs(48,44): error CS1061: ‘Transform’ does not contain a definition for ‘Foward’ and no accessible extension method ‘Foward’ accepting a first argument of type ‘Transform’ could be found (are you missing a using directive or an assembly reference?)

1 Like

Still not spelt correctly, forward has an r in it and it should be all lowercase.

should I post my code for you to see

Yes.

these are the lines of code that are causing the error (sorry if its an easy fix I’m new to this)
public Transform orientation;
rigidBody.AddForce(orientation.Foward * wallrunforce * Time.deltaTime);

https://docs.unity3d.com/ScriptReference/Transform-forward.html

Yep spelt wrong, should be orientation.forward.

I just forgot to put it back to the correct spelling earlier, but it still doesn’t work should I post all the code?

At this point I think you are trolling. This is an extremely simple fix to an extremely simple problem. Your IDE would have pointed this out to you already and could have been easily corrected without coming onto the forums for help.

2 Likes

Im not trolling I am new to coding and still working on how to solve errors

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class PlayerController : MonoBehaviour
{
    [SerializeField] Transform playerCamera = null;
    [SerializeField] float mouseSensitivity = 3.5f;
    [SerializeField] bool lockCursor = true;
    [SerializeField] float walkSpeed = 6.0f;
    [SerializeField] [Range(0.0f, 0.5f)] float moveSmoothTime = 0.3f;
    [SerializeField] [Range(0.0f, 0.5f)] float mouseSmoothTime = 0.03f;
    [SerializeField] float gravity = -13.0f;
    [SerializeField] float dashSpeed = 4.5f;
    [SerializeField] float jumph = 4f;
    [SerializeField] float jumpforce = 2f;

    private Rigidbody rigidBody;
    private Vector3 jump;

    private bool isgrounded; //new

    CharacterController controller = null;
    float cameraPitch = 0.0f;
    float velocityY = 0.0f;
    Vector2 currentDir = Vector2.zero;
    Vector2 currentDirVelocity = Vector2.zero;
    Vector2 currentMouseDelta = Vector2.zero;
    Vector2 currentMouseDeltaVelocity = Vector2.zero;

    //Wallrunning
    public LayerMask whatIsWall;
    public float wallrunforce, maxWallrunTime, maxWallSpeed;
    bool isWallRight, isWallLeft;
    bool isWallRunning;
    public float maxWallRunCameraTilt, wallRunCameraTilt;
    public Transform orientation;


    private void WallRunInput()
    {
        //StartWallrun
        if (Input.GetKey(KeyCode.D) && isWallRight) StartWallRun();
        if (Input.GetKey(KeyCode.A) && isWallLeft) StartWallRun();

        if(rigidBody.velocity.magnitude <= maxWallSpeed)
        {
            rigidBody.AddForce(orientation.foward * wallrunforce * Time.deltaTime);

            //Character Stick to Wall
            if (isWallRight)
                rigidBody.AddForce(orientation.right * wallrunforce / 5 * Time.deltaTime);
            else
                rigidBody.AddForce(-orientation.right * wallrunforce / 5 * Time.deltaTime);
        }
    }

    private void StartWallRun()
    {
        rigidBody.useGravity = false;
        isWallRunning = true;
    }

    private void StopWallRun()
    {
        rigidBody.useGravity = true;
        isWallRunning = false;
    }

    private void CheckForWall()
    {
        isWallRight = Physics.Raycast(transform.position, orientation.right, 1f, whatIsWall);
        isWallLeft = Physics.Raycast(transform.position, -orientation.right, 1f, whatIsWall);

        //Leave Wallrun
        if (!isWallRight && !isWallLeft) StopWallRun();
    }

    void Start()
    {
        jump = new Vector3(0f, jumph, 0f);
        rigidBody = GetComponent<Rigidbody>();

        controller = GetComponent<CharacterController>();
        if (lockCursor)
        {
            Cursor.lockState = CursorLockMode.Locked;
            Cursor.visible = false;
        }
    }

    void Update()
    {
        UpdateMouseLook();
        UpdateMovement();
        CheckForWall();
        WallRunInput();
    }

    void UpdateMouseLook()
    {
        Vector2 targetMouseDelta = new Vector2(Input.GetAxis("Mouse X"), Input.GetAxis("Mouse Y"));

        currentMouseDelta = Vector2.SmoothDamp(currentMouseDelta, targetMouseDelta, ref currentMouseDeltaVelocity, mouseSmoothTime);

        cameraPitch -= currentMouseDelta.y * mouseSensitivity;
        cameraPitch = Mathf.Clamp(cameraPitch, -90.0f, 90.0f);

        playerCamera.localEulerAngles = Vector3.right * cameraPitch;

        transform.Rotate(Vector3.up * currentMouseDelta.x * mouseSensitivity);
    }

    void UpdateMovement()
    {
        Vector2 targetDir = new Vector2(Input.GetAxisRaw("Horizontal"), Input.GetAxisRaw("Vertical"));
        targetDir.Normalize();

        currentDir = Vector2.SmoothDamp(currentDir, targetDir, ref currentDirVelocity, moveSmoothTime);

        if (controller.isGrounded)
            velocityY = 0.0f;

        velocityY += gravity * Time.deltaTime;

        Vector3 velocity = (transform.forward * currentDir.y + transform.right * currentDir.x) * walkSpeed + Vector3.up * velocityY;

        controller.Move(velocity * Time.deltaTime);

        if (Input.GetKeyDown(KeyCode.E))
        {
            currentDir.y = dashSpeed;
        }

        if (Input.GetKey(KeyCode.Space) && isgrounded) //new
        {
            rigidBody.AddForce(jump * jumpforce, ForceMode.Impulse);
            isgrounded = false;
        }
    }

    private void OnCollisionEnter(Collision other) //new
    {
        if (other.gameObject.tag == "floor")
            isgrounded = true;
    }
}

Still reads “foward” and not forward.

I didn’t notice that sorry for all the confusion

that fixed the error. Thank you for helping

That bold, red number is the line number. If you take a look at the error message, it tells you which line has the error. Open up your code and check that line.

I knew what line it was on I just had a spelling mistake, but thanks anyways