- Home /
Cant select objects using my box-selection script
 using UnityEngine;
 using System.Collections;
 using UnityEngine.UI;
 using UnityEngine.EventSystems;
 using System;
 using System.Collections.Generic;
 
 public class DragSelection : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDragHandler
 {
     public List<GameObject> selected = new List<GameObject>();
     public List<GameObject> selectable = new List<GameObject>();
 
     [SerializeField]
     Image selectionBoxImage;
 
     Vector2 startPostion;
     Rect selectionRect;
     
 
 
 
     public void OnBeginDrag(PointerEventData eventData)
     {
         if (Input.GetMouseButton(0))
         {
             selectionBoxImage.gameObject.SetActive(true);
             startPostion = eventData.position;
             selectionRect = new Rect();
             
         }
         
     }
 
     public void OnDrag(PointerEventData eventData)
     {
         if (Input.GetMouseButton(0))
         {
         //X axis
         if (eventData.position.x < startPostion.x)
         {
             selectionRect.xMin = eventData.position.x;
             selectionRect.xMax = startPostion.x;
         }
         else
         {
             selectionRect.xMin = startPostion.x;
             selectionRect.xMax = eventData.position.x;
         }
         //Y axis
         if (eventData.position.y < startPostion.y)
         {
             selectionRect.yMin = eventData.position.y; 
             selectionRect.yMax = startPostion.y;
         }
         else
         {
             selectionRect.yMin = startPostion.y;
             selectionRect.yMax = eventData.position.y;
         }
 
         selectionBoxImage.rectTransform.offsetMin = selectionRect.min;
         selectionBoxImage.rectTransform.offsetMax = selectionRect.max;
             
         }
         
     }
 
     public void OnEndDrag(PointerEventData eventData)
     {
         
         
         selectionBoxImage.gameObject.SetActive(false);
         foreach (GameObject selectObject in selectable)
         {
             if (selectObject != null)
             {               
                 Debug.Log("object found");
                 
                 if (selectionRect.Contains(Camera.main.WorldToScreenPoint(selectObject.transform.position)))
                 {
                     selected.Add(selectObject);
                     Debug.Log("object selected");
                 }
             }
             
         }
            
     }
 
 
 }
 
im trying to make a box select feature in my game, and in the OnEndDrag method, I am trying to find all the selectable gameobjects in the box selector and add them to the selected list(Yes, I added gameobjects to the selectable list). the only error it gave me was:
LINE 79: if (selectionRect.Contains(Camera.main.WorldToScreenPoint(selectObject.transform.position))); This got me stumped because I cant seem to figure out what object reference isn't set to an instance of an object. Usually I never have problems figuring out stuff like this but this time isn't the case. NOTE: this is my first time using the IBeginDragHandler, IDragHandler, and IEndDragHandler interfaces in a script, so I could have a lot wrong.NullReferenceException: Object reference not set to an instance of an object DragSelection.OnEndDrag (UnityEngine.EventSystems.PointerEventData eventData) (at Assets/AI Project/DragSelection.cs:79) UnityEngine.EventSystems.ExecuteEvents.Execute (UnityEngine.EventSystems.IEndDragHandler handler, UnityEngine.EventSystems.BaseEventData eventData) (at C:/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/EventSystem/ExecuteEvents.cs:78) UnityEngine.EventSystems.ExecuteEvents.Execute[T] (UnityEngine.GameObject target, UnityEngine.EventSystems.BaseEventData eventData, UnityEngine.EventSystems.ExecuteEvents+EventFunction`1[T1] functor) (at C:/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/EventSystem/ExecuteEvents.cs:261) UnityEngine.EventSystems.EventSystem:Update()
Your answer
 
 
             Follow this Question
Related Questions
Create selection box by double tapping then dragging? (android mobile)(cnc style)(image embedded) 1 Answer
Creating a cube as a selection box and detecting all collided objects inside of it. 2 Answers
unit selection issue 0 Answers
RTS Style Selection system (How to control one unit and not the others) 2 Answers
Unity RayCast Selection 1 Answer
 koobas.hobune.stream
koobas.hobune.stream 
                       
               
 
			 
                