Search Unity

I cannot understand why I am getting the NullReferenceException?

Discussion in 'Scripting' started by psraganvesh, May 2, 2016.

  1. psraganvesh

    psraganvesh

    Joined:
    Apr 30, 2015
    Posts:
    6
    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<PlayerController>();

    //movementHandlerScriptComponent = GetComponent<MovementHandler>();
    //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");
    }
    }



    }
     
  2. Baste

    Baste

    Joined:
    Jan 24, 2013
    Posts:
    6,338