Question by
AtaTurkoglu · Oct 19, 2016 at 03:16 PM ·
error message
HELP me please i am gettin "Assets/Weapon.cs(39,46): error CS1502: The best overloaded method match for `UnityEngine.Physics2D.Raycast(UnityEngine.Vector2, UnityEngine.Vector2, float, int, float)' has some invalid arguments"
using UnityEngine; using System.Collections;
public class Weapon : MonoBehaviour {
public float fireRate = 0;
public float Damage = 10;
public LayerMask whatToHit;
float timeToFire = 0;
Transform firePoint;
// Use this for initialization
void Awake () {
firePoint = transform.FindChild ("FirePoint");
if (firePoint == null) {
Debug.LogError ("No firePoint? WHAT?");
}
}
// Update is called once per frame
void Update () {
if (fireRate == 0) {
if (Input.GetButtonDown ("Fire1")) {
Shoot ();
}
}
else {
if (Input.GetButton ("Fire1") && Time.time > timeToFire) {
timeToFire = Time.time + 1 / fireRate;
Shoot();
}
}
}
void Shoot () {
Vector2 mousePosition = new Vector2 (Camera.main.ScreenToWorldPoint (Input.mousePosition).x, Camera.main.ScreenToWorldPoint(Input.mousePosition).y);
Vector2 firePointPosition = new Vector2 (firePoint.position.x, firePoint.position.y);
RaycastHit2D hit = Physics2D.Raycast (firePointPosition, mousePosition, mousePosition-firePointPosition, 100, whatToHit);
Debug.DrawLine (firePointPosition, (mousePosition-firePointPosition)*100, Color.cyan);
if (hit.collider != null)
Debug.DrawLine (firePointPosition, hit.point, Color.red);
Debug.Log ("We hit" + hit.collider.name + "and did " + Damage + " damage. ");
}
}
}
Comment
It's telling you the problem.
Physics2D.Raycast expects to find its parameters in the order: Vector2, Vector2, Float, Int, Float
You are providing "mousePosition-firePointPosition" for that first Float value. If you want the distance ins$$anonymous$$d, use:
RaycastHit2D hit = Physics2D.Raycast (firePointPosition, mousePosition, (mousePosition-firePointPosition).magnitude, 100, whatToHit);
Your answer
Follow this Question
Related Questions
Navmesh spam console when desactivated 1 Answer
Failed extracting collision mesh error 0 Answers
Scripting problem 1 Answer
Required API level 26, android sdk 2 Answers