Ejemplo n.º 1
0
 public void Reset()
 {
     lr.enabled = false;
     if (StartPar)
     {
         StartPar.SetActive(false);
     }
     if (EndPar)
     {
         EndPar.SetActive(false);
     }
 }
Ejemplo n.º 2
0
    public GameObject Emit(Vector3 Direction)
    {
        GameObject   hitGO = null;
        RaycastHit2D hit;

        lr.enabled = true;
        if (StartPar)
        {
            StartPar.SetActive(true);
            StartPar.transform.rotation = Quaternion.Euler(0, 0, Mathf.Atan2(Direction.y, Direction.x) * Mathf.Rad2Deg);
        }
        if (hit = Physics2D.Raycast(transform.position + Offset * transform.transform.localScale.x, Direction, 20, Layermask))
        {
            lr.SetPosition(0, transform.position + Offset);
            lr.SetPosition(1, hit.point);
            if (EndPar)
            {
                EndPar.SetActive(true);
                EndPar.transform.position   = hit.point;
                StartPar.transform.rotation = Quaternion.Euler(0, 0, Mathf.Atan2(Direction.y, Direction.x) * Mathf.Rad2Deg);
            }

            hitGO = hit.collider.gameObject;
            if (hit.collider.tag == enemyTag)
            {
                EnemyController ec = hit.collider.GetComponent <EnemyController>();
                ec.health.health -= Time.deltaTime * DamegeRatio;
            }
        }
        else
        {
            lr.SetPosition(0, transform.position + Offset);
            Vector3 end = transform.position + Offset + Direction * 15;
            end = new Vector3(end.x, end.y, 0);
            lr.SetPosition(1, end);
        }
        return(hitGO);
    }