Move character using Camera Input

I’m working on one game project. It has one condition:
Player should not have movement script. Camera will take keyboard input and tells player to move

I tried getting character using Gameobject in Camera script. But it didn’t work.

Any suggestion is helpful!

I would have to look at what you’re doing to find your character in order to find out what the problem is…
But putting this on your camera should work. (Make sure your character is tagged as “Player” for this script to work. I usually use tags to find my game objects)

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

public class CameraScript : MonoBehaviour
{
    float movementSpeed = 3.0f;
    GameObject player;

    // Use this for initialization
    void Start()
    {
        player = GameObject.FindGameObjectWithTag("Player");
    }

    // Update is called once per frame
    void Update()
    {
        // If we press/hold W
        if (Input.GetKey(KeyCode.W))
        {
            // Move the player Forwards
            player.transform.Translate(Vector3.forward * movementSpeed * Time.deltaTime);
        }
        // Or if we press/hold S
        else if (Input.GetKey(KeyCode.S))
        {
            // Move the player Backwards
            player.transform.Translate(Vector3.back * movementSpeed * Time.deltaTime);
        }

        // If we press/hold A
        if (Input.GetKey(KeyCode.A))
        {
            // Strafe the player left
            player.transform.Translate(Vector3.left * movementSpeed * Time.deltaTime);
        }
        // Or if we press/hold D
        else if (Input.GetKey(KeyCode.D))
        {
            // Strafe the player right
            player.transform.Translate(Vector3.right * movementSpeed * Time.deltaTime);
        }
    }
}

Note:
This script makes it so you can’t press W and S at the same time, same with A and D. If you want to change this then change the "else if"s to "if"s.

The only difference will be that holding A and D or W and S will make your player stay still since you’re telling the player to move opposite directions at the same time.

I hope this works for you! :slight_smile:

This works perfect !! Thanks!