Exemplo n.º 1
0
 private void Update()
 {
     if (Input.GetMouseButtonUp(0))                                                                // Jeżeli lewy przycisk myszki został podniesiony
     {
         Ray mouseRay = _camera.ScreenPointToRay(Input.mousePosition);                             // Promień z pozycji myszki w głąb sceny
         if (Physics.Raycast(mouseRay, out var hitInfo))                                           // Sprawdź czy promień w coś trafił
         {
             IClickTarget clickTarget = hitInfo.collider.gameObject.GetComponent <IClickTarget>(); // Wyciągnijmy obiekt typu IClickTarget
             if (clickTarget != null)                                                              //Sprawdź czy był obiekt typu IClickTarget
             {
                 clickTarget.Clicked();                                                            // Powiedź obiektowi że został kliknięty
             }
         }
     }
 }
Exemplo n.º 2
0
        private void SingleCast(Ray mouseRay, float maxDistance)
        {
            if (Caster == null)
            {
                Debug.LogWarning("There is no ICaster for ClickController");
                return;
            }

            if (Caster.Cast(mouseRay, out var hitInfo, maxDistance, _targetLayers))                   // Sprawdź czy caster w coś trafił
            {
                IClickTarget clickTarget = hitInfo.collider.gameObject.GetComponent <IClickTarget>(); // Wyciągnijmy obiekt typu IClickTarget
                if (clickTarget != null)                                                              //Sprawdź czy był obiekt typu IClickTarget
                {
                    clickTarget.Clicked();                                                            // Powiedź obiektowi że został kliknięty
                }
            }
        }
Exemplo n.º 3
0
        private void NonAllocCast(Ray mouseRay, float maxDistance)
        {
            if (Caster == null)
            {
                Debug.LogWarning("There is no ICaster for ClickController");
                return;
            }

            var hitsCount = Caster.CastNonAlloc(mouseRay, _allocatedHits, maxDistance, _targetLayers);

            for (int i = 0; i < hitsCount; i++)
            {
                IClickTarget clickTarget = _allocatedHits[i].collider.gameObject.GetComponent <IClickTarget>(); // Wyciągnijmy obiekt typu IClickTarget
                if (clickTarget != null)                                                                        //Sprawdź czy był obiekt typu IClickTarget
                {
                    clickTarget.Clicked();                                                                      // Powiedź obiektowi że został kliknięty
                }
            }
        }
Exemplo n.º 4
0
        private void AllCast(Ray mouseRay, float maxDistance)
        {
            if (Caster == null)
            {
                Debug.LogWarning("There is no ICaster for ClickController");
                return;
            }

            var allHits = Caster.CastAll(mouseRay, maxDistance, _targetLayers);

            foreach (var hit in allHits)
            {
                IClickTarget clickTarget = hit.collider.gameObject.GetComponent <IClickTarget>(); // Wyciągnijmy obiekt typu IClickTarget
                if (clickTarget != null)                                                          //Sprawdź czy był obiekt typu IClickTarget
                {
                    clickTarget.Clicked();                                                        // Powiedź obiektowi że został kliknięty
                }
            }
        }