- Home /
Joystick Movement C#(Joystick GUI Texture Not There)
This is my Movement Script i have been working on. Its mainly a C# conversion of the CameraRelativeMovement script in the Standard Assets(Mobile) pack. My problem is when i activate this script on my player game object my joystick is not there. The Game object for the joystick is pulled right from the standard assets. However The joystick script itself is the c# converted version from here: http://wiki.unity3d.com/index.php?title=Joystick . Any help would be much appreciated thank you.
using UnityEngine;
using System.Collections;
public class Movement : MonoBehaviour {
public Joystick moveJoystick;
public Vector3 movement;
public float speed = 5;
private CharacterController controller;
private Vector2 absJoyPos;
private Vector3 velocity;
private Transform thisTransform;
private Vector3 horizontalVelocity;
// Use this for initialization
void Start () {
thisTransform = GetComponent<Transform>();
controller = GetComponent<CharacterController>();
}
void FaceMovementDirection()
{
horizontalVelocity = (new Vector3 (controller.velocity.x, 0, 0));
horizontalVelocity.y = 0; // Ignore vertical movement
// If moving significantly in a new direction, point that character in that direction
if ( horizontalVelocity.magnitude > 0.1 )
thisTransform.forward = horizontalVelocity.normalized;
}
// Update is called once per frame
void Update () {
movement = (new Vector3(moveJoystick.position.x, 0, moveJoystick.position.y)) ;
movement.y = 0;
movement.Normalize(); // Adjust magnitude after ignoring vertical movement
// Let's use the largest component of the joystick position for the speed.
absJoyPos = new Vector2( Mathf.Abs( moveJoystick.position.x ), Mathf.Abs( moveJoystick.position.y ) );
movement *= speed * ( ( absJoyPos.x > absJoyPos.y ) ? absJoyPos.x : absJoyPos.y );
movement += velocity;
movement += Physics.gravity;
movement *= Time.deltaTime;
// Actually move the character
controller.Move(movement);
if ( controller.isGrounded )
// Remove any persistent velocity after landing
velocity = Vector3.zero;
// Face the character to match with where she is moving
FaceMovementDirection();
}
}
Answer by fullme7al · Sep 18, 2013 at 12:56 AM
I don't know if you still need this but the Guitexture should be put onto the joystick object in the inspector. Then the joystick object in the hierarchy should be put into the public movejoystick slot in the movement script in the inspector.
Your answer
![](https://koobas.hobune.stream/wayback/20220613104033im_/https://answers.unity.com/themes/thub/images/avi.jpg)