• Benvenuto in Making Videogames!
  • Dai sfogo alla tua fantasia!
  • Crea il tuo Videogioco!
Benvenuto ospite! Login Registrati




Valutazione discussione:
  • 0 voto(i) - 0 media
  • 1
  • 2
  • 3
  • 4
  • 5
Aiuto problema script per attacco
#1
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(
 
#2
Dacci qualche informazione di più sul genere di errore che ti da. Il trigger dell'animator si chiama proprio "attacco"?
 
#3
Che tipo di errore ti da?
 
#4
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()
 
#5
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/334...er-pl.html

Spero di averti aiutato Big Grin
 
#6
(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/334...er-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
 
#7
Verifica anche i nomi di trigger e script.
Forse hai scritto ''attco'' o ''attaco''.
Forse leggendo non te ne accorgi Smile
 
#8
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..
 
#9
(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");
 
#10
Uhm, prova a fare (Input.GetKeyDown("z")) invece che nell'altro modo.
 
#11
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
 
#12
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);
    }
    
  }
}
 
#13
Funziona!! Grazie mille black! Purtroppo non conoscendo la programmazione di questi errori ne faccio spesso..mi baso solo sui tutorial Tongue
 
#14
Di nulla Big Grin
 
  


Discussioni simili
Discussione Autore Risposte Letto Ultimo messaggio
  problema con script transform.lookat dexter95 5 1,329 18-05-2015, 11:06 PM
Ultimo messaggio: Chip
  Aiuto script sparo gioco 2D fedekikko 4 1,164 22-04-2015, 03:31 PM
Ultimo messaggio: Blackg96
  Problema script vita player davidecreatoreapp 4 1,132 06-04-2015, 05:17 PM
Ultimo messaggio: Chip
  Richiesta aiuto script per guidare macchina. davidecreatoreapp 8 1,731 27-03-2015, 11:56 AM
Ultimo messaggio: davidecreatoreapp
  Problema script health bar per gioco 2D Master Gabriel 14 2,728 05-02-2015, 11:18 AM
Ultimo messaggio: Master Gabriel
  problema script ugavle 0 631 23-12-2014, 03:12 PM
Ultimo messaggio: ugavle
  Aiuto Script LatinMan 16 2,809 06-09-2014, 03:39 PM
Ultimo messaggio: Blackg96
  Script C# problema GUI.Button Requiem99 3 1,018 30-04-2014, 07:43 PM
Ultimo messaggio: adriqueru99
  Aiuto Script Tech98 5 1,264 25-04-2014, 11:45 PM
Ultimo messaggio: adriqueru99
  problema c#script giggimito 4 1,076 07-01-2014, 12:42 AM
Ultimo messaggio: BlaClex46

Vai al forum:


Browsing: 2 Ospite(i)