예제 #1
0
    void CheckToOutline()
    {
        if (PauseManager.isPaused)
        {
            return;
        }

        bool isOverMenu = worldRaycast.allUIs.Any(x => x.gameObject.name.Contains("Sub"));

        CanBeSelected current = null;

        if (worldRaycast.gameObjectHit == null? false : worldRaycast.gameObjectHit.TryGetComponent(out current) && !placeObject.isAllowedToPlace)
        {
            if (!current.isSelected)
            {
                current.isHovered = true;
            }

            if (Input.GetMouseButtonDown(0) && !isOverMenu)
            {
                if (lastSelected != null)
                {
                    lastSelected.isSelected = false;
                }

                current.isSelected = true;

                if (placeObject.objectToPlaceInstance != null)
                {
                    Destroy(placeObject.objectToPlaceInstance.gameObject);
                }

                lastSelected = current;
            }

            lastInteractedWith = current;
        }
        else
        {
            if (lastInteractedWith != null && !isOverMenu)
            {
                if (!lastInteractedWith.isSelected)
                {
                    lastInteractedWith.isHovered = false;
                }



                if (Input.GetMouseButtonDown(0))
                {
                    lastSelected.isSelected = false;
                }
            }
        }
    }
예제 #2
0
 public virtual void Awake()
 {
     _boxCollider        = GetComponent <BoxCollider>();
     _collidersInTrigger = GetComponent <CollidersInTrigger>();
     _canBeSelected      = GetComponent <CanBeSelected>();
 }
 private void Awake()
 {
     canBeSelected = GetComponent <CanBeSelected>();
 }