public void FromState(RayState rs) { // Muzzel Flash muzzelFlash.Flash(); // Cast ray int masks = 0; masks |= (1 << LayerMask.NameToLayer("Player")); masks |= (1 << LayerMask.NameToLayer("Map")); var fireDir = new Vector2(Mathf.Cos(rs.zAngle), Mathf.Sin(rs.zAngle)); RaycastHit2D hitInfo = Physics2D.Raycast(rs.pos, fireDir, 1000, masks); if (hitInfo) { // Particle effect var effectPosition = new Vector3(hitInfo.point.x, hitInfo.point.y, -1); var effectRotation = Quaternion.Euler(0, 0, Random.Range(0.0f, 360.0f)); var effect = GameObject.Instantiate(impactEffect, effectPosition, effectRotation); GameObject.Destroy(effect, 1); //DrawRay.DrawLine(firePoint.transform.position, hitInfo.point, Color.red, 0.05f); DrawRay.DrawLine(rs.pos, hitInfo.point, Color.red, 1f); } else { //DrawRay.DrawLine(firePoint.transform.position, rs.zAngle, 100f, Color.red, 0.05f); DrawRay.DrawLine(rs.pos, rs.zAngle, 100f, Color.red, 1f); } }