Creare Videogiochi - Game Developer
Aiuto problema script per attacco - Versione stampabile

+- Creare Videogiochi - Game Developer (https://www.making-videogames.net/giochi)
+-- Forum: Unity3D Italia (https://www.making-videogames.net/giochi/Forum-Unity3D-Italia)
+--- Forum: Richieste di Aiuto per Unity 3D (https://www.making-videogames.net/giochi/Forum-Richieste-di-Aiuto-per-Unity-3D)
+--- Discussione: Aiuto problema script per attacco (/thread-Aiuto-problema-script-per-attacco)



Aiuto problema script per attacco - fedekikko - 20-04-2015

Ciao ragazzi, questo script mi sta facendo smattare..
Se lo lascio così, il player esegue le animazioni idle e move alla perfezione

using UnityEngine;
using System.Collections;

public class PlayerMove : MonoBehaviour {
public Animator animator;
public float horizontalMove;
public float speed;
private bool walking;



// Update is called once per frame
void Update () {

if (Input.GetAxis ("Horizontal") != 0) {
animator.SetBool ("walking", true);
transform.Translate (Vector3.right * Time.deltaTime * speed);
if (Input.GetAxis ("Horizontal") < 0) {
transform.rotation = Quaternion.Euler (0, 180, 0);
}
if (Input.GetAxis ("Horizontal") > 0) {
transform.rotation = Quaternion.Euler (0, 0, 0);
}
} else {
animator.SetBool ("walking", false);
}




quando però aggiungo l'ultimo comando per l'attacco, ovvero:

if Input.GetKey (Space)
animator.SetTrigger("attacco");

mi da errore!! che qualcuno mi aiuti Sad(


RE: Aiuto problema script per attacco - Chip - 20-04-2015

Dacci qualche informazione di più sul genere di errore che ti da. Il trigger dell'animator si chiama proprio "attacco"?


RE: Aiuto problema script per attacco - AltairRevenge - 20-04-2015

Che tipo di errore ti da?


RE: Aiuto problema script per attacco - fedekikko - 20-04-2015

Ciao ragazzi grazie per l'aiuto innanzitutto, il trigger si chiama proprio attacco.
L'errore che ricevo è questo.. All compiler errors have to be fixed before you can enter playmode!
UnityEditor.SceneView:ShowCompileErrorNotification()


RE: Aiuto problema script per attacco - AltairRevenge - 20-04-2015

Anche io ho avuto lo stesso problema tempo fa, devi aggiustare dei piccoli errori che potrebbero essere presenti nei tuoi script, aprendoli tramite Windows/Console.A me è capitato con un FPS Kit quindi ho disinstallato e reinstallato il tutto, poi nessun problema.
Qui c'è un articolo sul forum di Unity 3D.

Citazione:http://answers.unity3d.com/questions/33436/how-do-i-fix-all-compiler-errors-so-i-can-enter-pl.html

Spero di averti aiutato Big Grin


RE: Aiuto problema script per attacco - fedekikko - 20-04-2015

(20-04-2015, 07:18 PM)AltairRevenge Ha scritto: Anche io ho avuto lo stesso problema tempo fa, devi aggiustare dei piccoli errori che potrebbero essere presenti nei tuoi script, aprendoli tramite Windows/Console.A me è capitato con un FPS Kit quindi ho disinstallato e reinstallato il tutto, poi nessun problema.
Qui c'è un articolo sul forum di Unity 3D.

Citazione:http://answers.unity3d.com/questions/33436/how-do-i-fix-all-compiler-errors-so-i-can-enter-pl.html

Spero di averti aiutato Big Grin

Ora vado a cenare poi do un'occhiata, assurdo però come lo script possa funzionare tranquillamente e nel momento in cui aggiungo la stringa per l'attacco mi dia errore..bhaa


RE: Aiuto problema script per attacco - AltairRevenge - 20-04-2015

Verifica anche i nomi di trigger e script.
Forse hai scritto ''attco'' o ''attaco''.
Forse leggendo non te ne accorgi Smile


RE: Aiuto problema script per attacco - fedekikko - 20-04-2015

Ho ricontrollato tutto e di errori non ce ne sono, ho provato un po' a smanettare con lo script e ha cambiato tipo di errore, provate a dare un'occhiata...

using UnityEngine;
using System.Collections;

public class PlayerMove : MonoBehaviour {
public Animator animator;
public float horizontalMove;
public float speed;
private bool walking;



// Update is called once per frame
void Update () {
if (Input.GetKey(KeyCode.Z)
animator.SetTrigger("attacco");

if (Input.GetAxis ("Horizontal") != 0) {
animator.SetBool ("walking", true);
transform.Translate (Vector3.right * Time.deltaTime * speed);
if (Input.GetAxis ("Horizontal") < 0) {
transform.rotation = Quaternion.Euler (0, 180, 0);
}
if (Input.GetAxis ("Horizontal") > 0) {
transform.rotation = Quaternion.Euler (0, 0, 0);
}
} else {
animator.SetBool ("walking", false);




}
}
}




L'errore che viene riportato adesso è il seguente


Assets/PlayerMove.cs(15,33): error CS1525: Unexpected symbol `animator'


sempre più perplesso..


RE: Aiuto problema script per attacco - davidecreatoreapp - 20-04-2015

(20-04-2015, 08:26 PM)fedekikko Ha scritto: Ho ricontrollato tutto e di errori non ce ne sono, ho provato un po' a smanettare con lo script e ha cambiato tipo di errore, provate a dare un'occhiata...

using UnityEngine;
using System.Collections;

public class PlayerMove : MonoBehaviour {
public Animator animator;
public float horizontalMove;
public float speed;
private bool walking;



// Update is called once per frame
void Update () {
if (Input.GetKey(KeyCode.Z)
animator.SetTrigger("attacco");

if (Input.GetAxis ("Horizontal") != 0) {
animator.SetBool ("walking", true);
transform.Translate (Vector3.right * Time.deltaTime * speed);
if (Input.GetAxis ("Horizontal") < 0) {
transform.rotation = Quaternion.Euler (0, 180, 0);
}
if (Input.GetAxis ("Horizontal") > 0) {
transform.rotation = Quaternion.Euler (0, 0, 0);
}
} else {
animator.SetBool ("walking", false);




}
}
}




L'errore che viene riportato adesso è il seguente


Assets/PlayerMove.cs(15,33): error CS1525: Unexpected symbol `animator'


sempre più perplesso..
Non so se hai sbagliato a riportare lo script sul forum o sono io che mi sbaglio (cosa non da sottovalutare) ma su questa parte dello script non mancano le parentesi graffe di apertura e chiusura dell' if ?

void Update () {
if (Input.GetKey(KeyCode.Z)
animator.SetTrigger("attacco");


RE: Aiuto problema script per attacco - Master Gabriel - 20-04-2015

Uhm, prova a fare (Input.GetKeyDown("z")) invece che nell'altro modo.


RE: Aiuto problema script per attacco - Blackg96 - 21-04-2015

Prova a cambiare il nome della variabile animator, perchè ricordo che "animator" è anche una variabile che ha il valore dell' Animator a cui è attaccato lo script. Prova e facci sapere Big Grin


RE: Aiuto problema script per attacco - Blackg96 - 21-04-2015

AHHHH ecco hai messo una parentesi in meno nel controllo dell'input :
if (Input.GetKey(KeyCode.Z)

mentre devi fare cosi

if (Input.GetKey(KeyCode.Z))

in più hai sbagliato le parentesti graffe ecco il codice aggiustato :

Codice:
using UnityEngine;
using System.Collections;

public class PlayerMove : MonoBehaviour {
public Animator animator;
public float horizontalMove;
public float speed;
private bool walking;



// Update is called once per frame
    void Update ()
    {
    
    if (Input.GetKey(KeyCode.Z))
        animator.SetTrigger("attacco");

    if (Input.GetAxis ("Horizontal") != 0)
    {
        animator.SetBool ("walking", true);
        transform.Translate (Vector3.right * Time.deltaTime * speed);
    }
    
    if (Input.GetAxis ("Horizontal") < 0)
    {
        transform.rotation = Quaternion.Euler (0, 180, 0);
    }
    
    if (Input.GetAxis ("Horizontal") > 0)
    {
        transform.rotation = Quaternion.Euler (0, 0, 0);
    }
    else
    {
        animator.SetBool ("walking", false);
    }
    
  }
}



RE: Aiuto problema script per attacco - fedekikko - 21-04-2015

Funziona!! Grazie mille black! Purtroppo non conoscendo la programmazione di questi errori ne faccio spesso..mi baso solo sui tutorial Tongue


RE: Aiuto problema script per attacco - Blackg96 - 22-04-2015

Di nulla Big Grin