NullReferenceException: Object reference not set to an instance of an object TouchHandler.TouchControl () (at Assets/Script/TouchHandler.cs:78) TouchHandler.Update () (at Assets/Script/TouchHandler.cs:39)
I get this error and i cant figure out why. I thought some fresh eyes might help, anyone? Thank You.
using UnityEngine;
using System.Collections;
public class TouchHandler : MonoBehaviour {
/All the touch variables*/
private Vector2 fp; // first finger position
private Vector2 lp; // last finger position
private float angle;
private float swipeDistanceX;
private float swipeDistanceY;
private int swipeDistance = 50; // Distance fingure to travell to register as a swipe
private Touch touch; // touch variable
/All the Raycast variables*/
Ray ray;
RaycastHit hitInfo = new RaycastHit();
/All the PlayerController script variables*/
private PlayerController PC_component;
//private MovementHandler movementHandlerScriptComponent;
void Start()
{
PC_component = GetComponent();
//movementHandlerScriptComponent = GetComponent();
//movementHandlerScriptComponent.SetisBaseNameSet(false);
}
void Update ()
{
TouchControl();
}
void OnGUI()
{
foreach(Touch t in Input.touches)
{
string message = “”;
message += "ID: " + t.fingerId + “\n”;
message += "Phase: " + t.phase.ToString() + “\n”;
message += "TapCount: " + t.tapCount + “\n”;
message += "X: " + t.position.x + “\n”;
message += "Y: " + t.position.y + “\n”;
message += "Delta: " + t.deltaPosition + “\n”;
int num = t.fingerId;
GUI.Label(new Rect(0 + 130 * num, 0, 120, 120), message);
}
}
void castingRay()
{
if(Physics.Raycast(ray,out hitInfo))
{
if(hitInfo.transform.tag == “Base”)
{
PC_component.spawnPlayer(hitInfo);
//movementHandlerScriptComponent.Setsb_(hitInfo);
//movementHandlerScriptComponent.SetisBaseNameSet(true);
}
}
}
void TouchControl()
{
if(Input.touchCount == 1)
{
touch = Input.GetTouch(0);
ray = Camera.main.ScreenPointToRay(touch.position);
if (touch.phase == TouchPhase.Began)
{
fp = touch.position;
lp = touch.position;
//Raycasting
//if(movementHandlerScriptComponent.GetisBaseNameSet() == false)
if(PC_component.isPlayerSpawned == false)
castingRay();
}
if (touch.phase == TouchPhase.Moved )
{
lp = touch.position;
swipeDistanceX = Mathf.Abs((lp.x-fp.x));
swipeDistanceY = Mathf.Abs((lp.y-fp.y));
}
if(touch.phase == TouchPhase.Ended)
{
angle = Mathf.Atan2((lp.x-fp.x),(lp.y-fp.y))*57.2957795f;
swipeControlls();
}
}
}
void swipeControlls()
{
if(angle > 60 && angle < 120 && swipeDistanceX > swipeDistance)
{
Debug.Log(“right”);
PC_component.moveDirection = “right”;
}
if(angle > 150 || angle < -150 && swipeDistanceY > swipeDistance)
{
Debug.Log(“down”);
}
if(angle < -60 && angle > -120 && swipeDistanceX > swipeDistance)
{
Debug.Log(“left”);
PC_component.moveDirection = “left”;
}
if(angle > -30 && angle < 30 && swipeDistanceY > swipeDistance)
{
Debug.Log(“up”);
}
}
}