Animation is not member Object

Pour les scripts écrits en Javascript (UnityScript). :!: Obsolète :!:
Règles du forum
Merci de respecter la NOMENCLATURE suivante pour vos TITRES de messages :

Commencez par le niveau de vos scripts
DB = Débutant
MY = Moyen
CF = Confirmé

Puis le domaine d'application
-RS = Réseau
-AL = Algorithmie

Exemple :

[DB-RS] Mouvement perso multijoueur
Moucklee
Messages : 5
Inscription : 06 Avr 2015 13:39

Animation is not member Object

Message par Moucklee » 06 Avr 2015 13:48

Bonjours a tous,

Étant nouveau dans le domaine, je rencontre quel que lacune avec un script que j'ai mis en place hier pour faire animé mon personnage.
J'ai suivie un tutoriel sur Youtube pour animé ce fameux Golem Bleu, très beau tutoriel d'ailleurs.

Mais voila lorsque j'en arrive a vouloir l'animé pour qu'il puisse marcher, courir, et en position Idle j'ai cette fameuse erreur "Animation is not a member Object"

Voici les détail de mon code, j'ai essayé pas mal de chose mais en vain même sur google en tapant ce message d'erreur je retombe sur les commentaire YT du tuto.
Et malheureusement l'auteur du tuto n'a pas apporter de réponse a ce problème.

Je code a peine donc veuillez m'excusez si l'erreur parait bête :/
En vous remerciant d'avance

PS: J'utilise la Version 5 D'unity version Gratuite d’après ce que j'ai compris ce code et obselet sur les dernière version ?

Code : Tout sélectionner

#pragma strict

// Plublic variable
var speed:float;
var speedRun:float;
var speedRotate:float;
var gravity: float;



// Private Variable

private var controller:CharacterController;
private var moveDirection:Vector3;
private var deltaTime:float;
private var characterContent;
private var runAnim:boolean;





function Start () {
	
	controller = GetComponent("CharacterController");
	characterContent = transform.Find ("Perso");
	
	
 
}

function Update () {

	
	

	// Cadence du Temps
	deltaTime = Time.deltaTime;
	
	// On ne cours pas
	runAnim = false;
	
	// Déplacement Haut/Bas
	if(Input.GetKey(KeyCode.LeftShift) || Input.GetKey(KeyCode.RightShift)){
		moveDirection = Vector3(0,0,Input.GetAxis("Vertical") * speedRun);
		runAnim = true;	
	}else{
		moveDirection = Vector3(0,0,Input.GetAxis("Vertical") * speed);	
		
	}
	
	if(Input.GetKey(KeyCode.UpArrow) || Input.GetKey(KeyCode.DownArrow)){
		if(!runAnim){	
				characterContent.animation.CrossFade("walk", 0.2);
			}else{
				characterContent.animation.CrossFade("run", 0.2);
			}
	}else{
				characterContent.animation.CrossFade("idle", 0.2);
	}
	
	// Changer sur l'axe local
	moveDirection = transform.TransformDirection(moveDirection);
	
	// Rotation du personnage
	transform.Rotate(Vector3(0,Input.GetAxis("Horizontal") * speedRotate * deltaTime,0));
	
	
	// Gravity
	moveDirection.y -= gravity; 
	
	// Déplacement du Character Controller
	controller.Move(moveDirection * deltaTime);
	
	
}

Avatar de l’utilisateur
minirop
Messages : 184
Inscription : 25 Juin 2014 12:58

Re: Animation is not member Object

Message par minirop » 06 Avr 2015 15:16

avec la version 5, Unity a supprimé les raccourcis, donc au lieu de faire characterContent.animation il faut maintenant faire characterContent.GetComponent(Animation).
Développeur Nintendo & PS Vita RIP PSM. Vive moi. Vive Unity. Flappikachu Vita

Avatar de l’utilisateur
giyomuSan
Messages : 1799
Inscription : 09 Déc 2009 14:52
Localisation : Japon

Re: Animation is not member Object

Message par giyomuSan » 06 Avr 2015 15:27

Y a une raison pour laquelle characterContent son type est pas defini lors de sa declaration ?

characterContent = transform.Find("Perso") , c est censer te retourner quel type...?

Vu que aucun type n est defini, ton characterContent fini en type of object, et qui n'a pas de relation pour acceder a animation.

Defini le type de characterContent de facon explicite lors de sa declaration
Dernière édition par giyomuSan le 06 Avr 2015 15:28, édité 1 fois.

Moucklee
Messages : 5
Inscription : 06 Avr 2015 13:39

Re: Animation is not member Object

Message par Moucklee » 06 Avr 2015 15:28

Tout d'abord merci pour ta réponse apporter.

Ensuite si j'ai bien compris je remplace seulement "characterContent.animation.CrossFade" par "characterContent.GetComponent(Animation)"

Moucklee
Messages : 5
Inscription : 06 Avr 2015 13:39

Re: Animation is not member Object

Message par Moucklee » 06 Avr 2015 15:30

giyomuSan a écrit :Y a une raison pour laquelle characterContent son type est pas defini lors de sa declaration ?

characterContent = transform.Find("Perso") , c est censer te te retourner un quel type...?

Vu que aucun type n est defini, ton characterContent fini en type of object, et qui n'a pas de relation pour acceder a animation.

Defini le type de characterContent de facon explicite lors de sa declaration

Oups j'ai pas vue ta réponse nous avons posté quasi en même temps alors je m"explique.

le "Perso" est a l'interieur d'un "Create Empty" qui lui s'appelle Golem j'ai utilisé cette technique pour la camera suit le personnage

Avatar de l’utilisateur
giyomuSan
Messages : 1799
Inscription : 09 Déc 2009 14:52
Localisation : Japon

Re: Animation is not member Object

Message par giyomuSan » 06 Avr 2015 15:37

J imagine que unity script le cast dynamiquement alors , en c# le compiler t aurais coller une erreur direct de pas preciser le type lors de la declaration de la variable..

Dans ca cas ce que t as dis minirop devrait resoudre ton soucis, eventuellement

Avatar de l’utilisateur
ZJP
Messages : 5748
Inscription : 15 Déc 2009 06:00

Re: Animation is not member Object

Message par ZJP » 06 Avr 2015 15:39

Moucklee a écrit : le "Perso" est a l'interieur d'un "Create Empty" ..
C'est plutôt un "empty GameObject" :mrgreen:

Moucklee
Messages : 5
Inscription : 06 Avr 2015 13:39

Re: Animation is not member Object

Message par Moucklee » 06 Avr 2015 15:40

C'est étrange car ce script lettre pour lettre mot pour mot fonctionne sous Unity v4.x.x et pas sur la V5 :s

Moucklee
Messages : 5
Inscription : 06 Avr 2015 13:39

Re: Animation is not member Object

Message par Moucklee » 06 Avr 2015 15:40

ZJP a écrit :
Moucklee a écrit : le "Perso" est a l'interieur d'un "Create Empty" ..
C'est plutôt un "empty GameObject" :mrgreen:

Oui pardon, je me mélange les pinceaux :shock:

je dois remplace seulement "characterContent.animation.CrossFade" par "characterContent.GetComponent(Animation)" :?:

Hoslety
Messages : 25
Inscription : 11 Juin 2015 00:27

Re: Animation is not member Object

Message par Hoslety » 11 Juin 2015 00:50

Bonjour,

Suivant le même tutoriel je suis tombé sur le même soucis ...
Voiçi la solution:

Tu dois remplacé :

Code : Tout sélectionner

private var characterContent
Par :

Code : Tout sélectionner

private var characterContent:Transform;
ensuite :

Code : Tout sélectionner

if (!walk && !run) {
		characterContent.GetComponent(Animation).CrossFade("idle", 0.2);
	} else if(walk) {
		characterContent.GetComponent(Animation).CrossFade("walk", 0.2);
	} else if (run) {
		characterContent.GetComponent(Animation).CrossFade("run", 0.2);
	}
Voiçi le code pour faire les animations de ton personnage

Verrouillé

Revenir vers « (Js) Javascript »