- Home /
Character Movement w/ Both Joysticks
I am trying to use both joysticks to move the player
the Left Joystick controls the player movement
the Right Joystick should control the direction for aim/look
Basically, I'm trying to replicate the Black-Ops Arcade controls but in isometric view. please help! https://youtu.be/moCQc5gDqCQ?t=3m17s
Here's what I have found online that's helped me thus far:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CharController : MonoBehaviour {
[SerializeField]
float moveSpeed = 2f;
Vector3 forward, right;
void Start ()
{
forward = Camera.main.transform.forward;
forward.y = 0;
forward = Vector3.Normalize(forward);
right = Quaternion.Euler(new Vector3(0, 90, 0)) * forward;
}
void Update ()
{
if (Input.anyKey)
Move();
}
void Move ()
{
Vector3 direction = new Vector3(Input.GetAxis("HorizontalKey"), 0, Input.GetAxis("VerticalKey"));
Vector3 rightMovement = right * moveSpeed * Time.deltaTime * Input.GetAxis("HorizontalKey");
Vector3 upMovement = forward * moveSpeed * Time.deltaTime * Input.GetAxis("VerticalKey");
Vector3 heading = Vector3.Normalize(rightMovement + upMovement);
transform.forward = heading;
transform.position += rightMovement;
transform.position += upMovement;
}
}
,I am trying to control my character with both joysticks in an isometric view. The Left Joystick provides direction and works great in the isometric view.
I can't figure out a way to get the Right Joystick to work as the look/aim direction.
Basically going for Black-Ops arcade style but in an isometric view: https://www.youtube.com/watch?v=moCQc5gDqCQ
Here's what I've found that currently works for my game:
using System.Collections; using System.Collections.Generic; using UnityEngine; public class CharController : MonoBehaviour { [SerializeField] float moveSpeed = 2f; Vector3 forward, right; void Start () { forward = Camera.main.transform.forward; forward.y = 0; forward = Vector3.Normalize(forward); right = Quaternion.Euler(new Vector3(0, 90, 0)) * forward; } void Update () { if (Input.anyKey) Move(); } void Move () { Vector3 direction = new Vector3(Input.GetAxis("HorizontalKey"), 0, Input.GetAxis("VerticalKey")); Vector3 rightMovement = right * moveSpeed * Time.deltaTime * Input.GetAxis("HorizontalKey"); Vector3 upMovement = forward * moveSpeed * Time.deltaTime * Input.GetAxis("VerticalKey"); Vector3 heading = Vector3.Normalize(rightMovement + upMovement); transform.forward = heading; transform.position += rightMovement; transform.position += upMovement; } }
Your answer
Follow this Question
Related Questions
How to remove the Vertical axis on Joystick? 1 Answer
The name 'Joystick' does not denote a valid type ('not found') 2 Answers
How to determine 2D Directional animation based on player direction in a top down game 1 Answer
Touch buttons for step movememt 3 Answers
Hello Im making a Game for mobile and want two floating joysticks one on either side of the screen. 0 Answers