Hola, muy buenas a todos, estaba siguiendo un tutorial, y copiando el script a Unity 5, veo que no me hace el backup, pensaba que era porque estaba bien pero no porque tengo 11 errores en la consola, entre ellos algunos que dicen que el codigo está obsoleto.
Soy nuevo en la programación y la verdad no tengo mucha idea de como podría actualizar este script, si alguien me hecha una mano le estaría muy agradecido.
Aquí está el script
public float speed = 1.0f;
public float jumpSpeed = 0.5f;
public LayerMask groundLayer;
private Animator anim;
private Transform gCheck;
private float scaleX = 1.0f;
private float scaleY = 1.0f;
void Start () {
anim = GetComponent();
gCheck = transform.FindChild("GCheck");
}
void FixedUpdate () {
float mSpeed = Input.GetAxis("Horizontal");
anim.SetFloat("Speed", Mathf.Abs(mSpeed));
bool isTouched = Physics2D.OverlapPoint(gCheck.position, groundLayer);
if (Input.GetKey(KeyCode.Space)){
if (isTouched){
Rigidbody2D.AddForce(Vector2.up * jumpSpeed, ForceMode2D.Force);
isTouched = false;
}
}
anim.SetBool("isTouched", isTouched);
if (mSpeed > 0){
transform.localScale = new Vector2(scaleX, scaleY);
}
else if (mSpeed < 0){
transform.localScale = new Vector2(-scaleX, scaleY);
}
this.rigidbody2D.velocity = new Vector2(mSpeed * speed, this.rigidbody2D.velocity.y);
}
}[/quote]
Y aquí están los errores de la consola:
Assets/NewBehaviourScript.cs(35,31): error CS1026: Unexpected symbol `;', expecting `)'
Assets/NewBehaviourScript.cs(35,34): error CS0201: Only assignment, call, increment, decrement, and new object expressions can be used as a statement
Assets/NewBehaviourScript.cs(35,34): error CS1026: Unexpected symbol `)', expecting `)'
Assets/NewBehaviourScript.cs(38,20): error CS1519: Unexpected symbol `else' in class, struct, or interface member declaration
Assets/NewBehaviourScript.cs(38,33): error CS1519: Unexpected symbol `&' in class, struct, or interface member declaration
Assets/NewBehaviourScript.cs(38,36): error CS1519: Unexpected symbol `;' in class, struct, or interface member declaration
Assets/NewBehaviourScript.cs(39,46): error CS1519: Unexpected symbol `=' in class, struct, or interface member declaration
Assets/NewBehaviourScript.cs(39,60): error CS1519: Unexpected symbol `-' in class, struct, or interface member declaration
Assets/NewBehaviourScript.cs(39,67): error CS1519: Unexpected symbol `,' in class, struct, or interface member declaration
Assets/NewBehaviourScript.cs(39,75): error CS1519: Unexpected symbol `)' in class, struct, or interface member declaration
Assets/NewBehaviourScript.cs(42,20): error CS8025: Parsing error
[/quote]
Muchas gracias de ante-mano! Un saludo.
PD: Siento no haber puesto el código en formato de... pues eso codigo, como no encuentro la función lo he puesto en un spoiler
Aqui tienes corregido amigo, en si a mi me salieron 2 errores, en la parte de querer obtener el Animator del gameobject, te falto indicar correctamente esa parte , y la parte del Rigidbody2D te lo puse en negrita. para colocar código en las herramientas de colocar post, viene unas "<>" y es para colocar código, saludos
public float speed = 1.0f;
public float jumpSpeed = 0.5f;
public LayerMask groundLayer;
private Animator anim;
private Transform gCheck;
private float scaleX = 1.0f;
private float scaleY = 1.0f;
void Start () {
anim = GetComponent<Animator> ();
gCheck = transform.FindChild("GCheck");
}
void FixedUpdate () {
float mSpeed = Input.GetAxis("Horizontal");
anim.SetFloat("Speed", Mathf.Abs(mSpeed));
bool isTouched = Physics2D.OverlapPoint(gCheck.position, groundLayer);
if (Input.GetKey(KeyCode.Space)){
if (isTouched){
GetComponent<Rigidbody2D>().AddForce(Vector2.up * jumpSpeed, ForceMode2D.Force);
isTouched = false;
}
}
anim.SetBool("isTouched", isTouched);
if (mSpeed > 0){
transform.localScale = new Vector2(scaleX, scaleY);
}
else if (mSpeed < 0){
transform.localScale = new Vector2(-scaleX, scaleY);
}
this.GetComponent<Rigidbody2D>().velocity = new Vector2(mSpeed * speed, this.GetComponent<Rigidbody2D>().velocity.y);
}
Gracias ACarranza! El script ya es funcional, el problema ahora es que.... no funciona T.T . No encuentro el error en el código jajaja simplemente el personaje no avanza ni salta ni hace na de na, solo cambia la direccion del sprite al "avanzar" hacia un lado u otro.
¿Sabrías a que es debido?
Gracias de nuevo
Un saludo
Nada nada, problema arreglado, he sido muy tonto... Muchas gracias igualmente!
Aunque hay un problemilla, cuando avanzo hacia la izquierda la animacion mostrada es la de ir hacia la derecha, y viceversa, donde podría modificar eso en el codigo?
(Siento ser tan pesadito jejeje)
sorry amigo, hajaja sinceramente no me puse a leer/comprender tu codigo, simplemente corregí los errores, a ver platicanos que es lo que quieres lograr, y asi poderte orientar en base a lo que ya tienes
Pues a prueba y error, conseguí corregir el problema . Muchas gracias igualmente !! Un saludo