Ejemplo n.º 1
0
        private void hurt(UnitCollider unitCollider, RaycastHit2D hit)
        {
            var timeTravel = hit.distance / speed;

            if (unitCollider)
            {
                unitCollider.unit.damage(damage * (1 - unitCollider.unit.armor) * unitCollider.dmgMul / (timeTravel * 2 + 1));
            }
        }
Ejemplo n.º 2
0
        private IEnumerator hurt(UnitCollider unitCollider, RaycastHit2D hit)
        {
            var timeTravel = hit.distance / speed;

            yield return(new WaitForSeconds(timeTravel));

            if (unitCollider)
            {
                unitCollider.unit.damage(damage * unitCollider.dmgMul / (timeTravel * 2 + 1));
            }
        }
Ejemplo n.º 3
0
    private void Update()
    {
        if (Input.GetMouseButton(0))
        {
            RaycastHit hit;
            if (Physics.Raycast(Camera.main.ScreenPointToRay(Input.mousePosition), out hit, 500f, m_layerMask))
            {
                if (!m_mouseDown)
                {
                    m_startPosition = hit.point;
                    m_mouseDown     = true;
                    m_collider      = Instantiate(m_colliderPrefab) as UnitCollider;
                }

                point0 = m_startPosition + Vector3.up;
                point1 = new Vector3(m_startPosition.x, m_startPosition.y, hit.point.z) + Vector3.up;
                point2 = new Vector3(hit.point.x, m_startPosition.y, hit.point.z) + Vector3.up;
                point3 = new Vector3(hit.point.x, m_startPosition.y, m_startPosition.z) + Vector3.up;

                m_lineRenderer.positionCount = 4;
                m_lineRenderer.SetPositions(new Vector3[] { point0, point1, point2, point3 });

                m_collider.transform.position   = Vector3.Lerp(point0, point2, 0.5f);
                m_collider.transform.localScale = new Vector3((point1 - point2).magnitude, 1f, (point0 - point1).magnitude);
            }
        }

        if (Input.GetMouseButtonUp(0))
        {
            if (m_mouseDown)
            {
                var colliders = m_collider.GetUnits();
                Debug.Log($"Selected {colliders.Count} units ");

                m_mouseDown = false;
                m_lineRenderer.positionCount = 0;

                Destroy(m_collider.gameObject);
            }
        }
    }