I am trying to extend cross platform input in order to make mobile buttons to move a character left and right. What I did was I created two buttons and a script attached to each called MobileMovementButtons.cs. I run the program and the character moves left just fine but not right... I think it has something to do with my Conditional statement..
Here is my Code:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityStandardAssets.CrossPlatformInput;
using UnityEngine.EventSystems;
namespace CrossPlatformInput {
public class MobileMovementButton : MonoBehaviour, IPointerUpHandler, IPointerDownHandler{
public enum Direction {
Left,
Right
}
public Direction buttonDirection = Direction.Left;
CrossPlatformInputManager.VirtualAxis m_HorizontalVirtualAxis;
private bool rightPressed = false;
private bool leftPressed = false;
void Awake() {
CrossPlatformInputManager.UnRegisterVirtualAxis ("Horizontal");
}
void OnEnable() {
m_HorizontalVirtualAxis = new CrossPlatformInputManager.VirtualAxis("Horizontal" );
CrossPlatformInputManager.RegisterVirtualAxis(m_HorizontalVirtualAxis);
}
void Update() {
if (rightPressed) {
m_HorizontalVirtualAxis.Update (1);
}
if (leftPressed) {
m_HorizontalVirtualAxis.Update (-1);
}
if (!leftPressed && !rightPressed){
m_HorizontalVirtualAxis.Update (0);
}
}
public void OnPointerDown(PointerEventData eD) {
if (this.buttonDirection == Direction.Left) {
leftPressed = true;
}
if (this.buttonDirection == Direction.Right) {
rightPressed = true;
}
}
public void OnPointerUp(PointerEventData eD) {
if (this.buttonDirection == Direction.Left) {
leftPressed = false;
}
if (this.buttonDirection == Direction.Right) {
rightPressed = false;
}
}
}
}
And here is the buttons: