Question by
freezestime · Sep 29, 2016 at 12:34 PM ·
2d2d game2d-platformer2d-gameplay2d platformer
"Invalid argument"?
Brand new to this stuff so excuse any horrible-ness
So I've been following tutorials on Unity 2d and I've watched the official 2d character controller
and brackey's shooting tutorial part 1 & 2
These two seem to conflict so I'll post both scripts and if you can help in any way that'd be greatly appriciated
First one is unity
public float maxSpeed = 10f; bool facingRight = true;
Animator anim;
bool grounded = false;
public Transform groundCheck;
float groundRadius = 0.2f;
public LayerMask whatIsGround;
public float JumpForce = 700f;
void Start ()
{
anim = GetComponent<Animator> ();
}
void FixedUpdate ()
{
grounded = Physics2D.OverlapCircle (groundCheck.position, groundRadius, whatIsGround);
anim.SetBool ("Ground", grounded);
anim.SetFloat ("vSpeed", GetComponent<Rigidbody2D>().velocity.y);
float move = Input.GetAxis ("Horizontal");
anim.SetFloat ("Speed", Mathf.Abs (move));
GetComponent<Rigidbody2D>().velocity = new Vector2 (move * maxSpeed, GetComponent<Rigidbody2D>().velocity.y);
if(move > 0 &&!facingRight)
Flip ();
else if(move < 0 && facingRight)
Flip ();
}
void Update()
{
if (grounded && Input.GetKeyDown (KeyCode.Space))
{
anim.SetBool ("Ground", false);
GetComponent<Rigidbody2D>().AddForce(new Vector2(0, JumpForce));
}
}
void Flip ()
{
facingRight = !facingRight;
Vector3 theScale = transform.localScale;
theScale.x *=-1;
transform.localScale = theScale;
}
}
and this is Brackey's script
public float fireRate = 0;
public float Damage = 10;
public LayerMask whatToHit;
float timeToFire = 0;
Transform firePoint;
void Awake () {
firePoint = transform.FindChild ("firePoint");
if (firePoint == null) {
Debug.LogError ("No firePoint? WHAT?!");
}
}
// Update is called once per frame
void Update () {
Shoot ();
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 - 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
Your answer
Follow this Question
Related Questions
Walking around 2D planets? 1 Answer
How to fix spite character changing position when turning? 1 Answer
Player controlled platforms 0 Answers