Question by
Isaid_Osorio · Oct 29, 2015 at 05:27 PM ·
errorscript.
Hi I copy the exactly same script and it's not working, it shows me this message Assets/Scripts/SimplePlatformControler.cs(48,112): error CS1729: The type `UnityEngine.Vector2' does not contain a constructor that takes `1' arguments, can help me please
void FixedUpdate()
{
float h = Input.GetAxis ("Horizontal");
anim.SetFloat ("Speed", Mathf.Abs (h));
if (h * rb2d.velocity.x < maxSpeed)
rb2d.AddForce (Vector2.right * h * moveForce);
if (Mathf.Abs (rb2d.velocity.x) > maxSpeed)
rb2d.velocity = new Vector2 (Mathf.Sign (rb2d.velocity.x) * maxSpeed * rb2d.velocity.y);
Comment
Answer by Landern · Oct 29, 2015 at 05:30 PM
The Vector2 on line 11 should have a comma instead of a asterisk:
void FixedUpdate()
{
float h = Input.GetAxis ("Horizontal");
anim.SetFloat ("Speed", Mathf.Abs (h));
if (h * rb2d.velocity.x < maxSpeed)
rb2d.AddForce (Vector2.right * h * moveForce);
if (Mathf.Abs (rb2d.velocity.x) > maxSpeed)
rb2d.velocity = new Vector2 (Mathf.Sign (rb2d.velocity.x) * maxSpeed, rb2d.velocity.y);
here is the full code from the total for that class:
using UnityEngine;
using System.Collections;
public class SimplePlatformController : MonoBehaviour {
[HideInInspector] public bool facingRight = true;
[HideInInspector] public bool jump = false;
public float moveForce = 365f;
public float maxSpeed = 5f;
public float jumpForce = 1000f;
public Transform groundCheck;
private bool grounded = false;
private Animator anim;
private Rigidbody2D rb2d;
// Use this for initialization
void Awake ()
{
anim = GetComponent<Animator>();
rb2d = GetComponent<Rigidbody2D>();
}
// Update is called once per frame
void Update ()
{
grounded = Physics2D.Linecast(transform.position, groundCheck.position, 1 << LayerMask.NameToLayer("Ground"));
if (Input.GetButtonDown("Jump") && grounded)
{
jump = true;
}
}
void FixedUpdate()
{
float h = Input.GetAxis("Horizontal");
anim.SetFloat("Speed", Mathf.Abs(h));
if (h * rb2d.velocity.x < maxSpeed)
rb2d.AddForce(Vector2.right * h * moveForce);
if (Mathf.Abs (rb2d.velocity.x) > maxSpeed)
rb2d.velocity = new Vector2(Mathf.Sign (rb2d.velocity.x) * maxSpeed, rb2d.velocity.y);
if (h > 0 && !facingRight)
Flip ();
else if (h < 0 && facingRight)
Flip ();
if (jump)
{
anim.SetTrigger("Jump");
rb2d.AddForce(new Vector2(0f, jumpForce));
jump = false;
}
}
void Flip()
{
facingRight = !facingRight;
Vector3 theScale = transform.localScale;
theScale.x *= -1;
transform.localScale = theScale;
}
}
Answer by Isaid_Osorio · Nov 03, 2015 at 03:31 AM
Thank you @Landern , I didn't notice that, I made the corretions and it works
Your answer
Follow this Question
Related Questions
First person Character Controller Script Error, 0 Answers
Index was out of range. error 1 Answer
"The associated script cannot be loaded" 0 Answers
Getting error on lap counter script JS 0 Answers