@SatanPetitFion:
Si la largeur du trou pouvait accepter ma réponse et mon aide...
Mais là non tout est trop étroit pour ma réponse.
Change de Pseudo, si tu souhaites une aide (au moins la mienne).
Le 07 avril 2015 à 18:33:42 _PeterPan_ a écrit :
@SatanPetitFion:Si la largeur du trou pouvait accepter ma réponse et mon aide...
Mais là non tout est trop étroit pour ma réponse.
Change de Pseudo, si tu souhaites une aide (au moins la mienne).
Navrée si mon pseudo choc j'en oublie a chaque fois
Le 06 avril 2015 à 14:18:03 SatanPetitFion a écrit :
Salut all,Je suis un Tuto YT en ce moment et j'en suis a la partie ou mon personnage (Golem Bleu ) doit etre animé.
Jusqu'ici tous va bien, mais lorsque je creer le script et que j'essai de lancer la compile j'ai une erreur que j'arrive pas a résoudre."Animation is not member Object"
Je vous mets le code a disponibilité http://pastebin.com/SPTJHKCN
J'arrive pas a voir ce qui cloche
Voila j'ai suivie le même tuto mais pareil impossible a faire marché/courir le Golem
Le 07 avril 2015 à 18:33:42 _PeterPan_ a écrit :
@SatanPetitFion:Si la largeur du trou pouvait accepter ma réponse et mon aide...
Mais là non tout est trop étroit pour ma réponse.
Change de Pseudo, si tu souhaites une aide (au moins la mienne).
Si tu peut nous montrer comment il faut faire ça serais pas de refus merci
Bonjour !
Je suis débutant sur Unity et j'ai un soucis dans mon jeu, lorsque je m'approche trop d'un objet, mon personnage rebondit contre celui-ci à cause des colliders, j'aimerais qu'il n'y ait plus ce rebond, vous auriez une idée ?
Parceque c'est gênant quand je veux récupérer un objet, je dois forcer et appuyer au bon moment.
Merci d'avance
@SatanPetitFion :
Ton pseudo ne me choque pas.
Je pense simplement que tu sous-estime tes possibilités.
@Terminatrice2:
Le tuto que tu as suivi ne me semble pas correct en terme de programmation (ce n'est pas de ta faute).
J'ai remarqué aussi dans ton code quelques petits commentaires qui laissent apercevoir un engagement de ta part dans la dite programmation.
Dans ce sens et à titre didactique, je suis prêt à vous donner mon aide dans les post qui suivent.
@xSentenza:
Peut être les objets vers lesquels ton perso rentre en collision possède un "RigidBody". Si c'est le cas désactive le ou supprime ce composant.
Salut PeterPan, je travaille sur le même projet que Sentenza et il n'y a aucun RigidBody sauf sur le perso.
Mais j'ai trouvé une solution, ce serait d'utiliser OnTriggerStay : je voudrais que si je suis dans le Trigger 1 et que j'appuie sur "E" je puisse récupérer l'objet 1 et si je suis dans le Trigger 2 et que j'appuie sur "E" je puisse récupérer l'objet 2.
Seulement, des que je rentre dans un Trigger ça me compte pour tous les autres. Aurais-tu une idée pour choisir le bon ?
Merci d'avance !
@Jiode:
Pour différencer dans un évènement OnTriggerXXX(other Collider) tu dois donner un name Tag aux objets censés être reconnus dans le dit événement.
Pour être plus clair :
On imagine deux murs équipés de colliders nommés A & B.
Pour l'objet représentant le mur A tu lui donne le Tag "MurA".
Pour l'objet représentant le mur B tu lui donne le Tag "MurB"
Dans ta méthode de gestion de l'évenemenent OnTriggerXXX(other Collider)
Exemple en C# non vérifié
private void OnTriggerXXX(other Collider)
{
if (other.gameobject.tag == "MurA")
{
// Traitement collision avec Mur A
}
if (other.gameobject.tag == "MurB")
{
// Traitement collision avec Mur B
}
}
Voila en gros le principe.
Il existe une meilleure écriture du truc. C'est juste pour vous faire comprendre.
Bonne continuation.
Merci beaucoup !
Le 08 avril 2015 à 17:06:14 _PeterPan_ a écrit :
@SatanPetitFion :
Ton pseudo ne me choque pas.
Je pense simplement que tu sous-estime tes possibilités.@Terminatrice2:
Le tuto que tu as suivi ne me semble pas correct en terme de programmation (ce n'est pas de ta faute).
J'ai remarqué aussi dans ton code quelques petits commentaires qui laissent apercevoir un engagement de ta part dans la dite programmation.
Dans ce sens et à titre didactique, je suis prêt à vous donner mon aide dans les post qui suivent.@xSentenza:
Peut être les objets vers lesquels ton perso rentre en collision possède un "RigidBody". Si c'est le cas désactive le ou supprime ce composant.
Merci en tous cas, car cela fait 2-3 jours que je séchè dessus j'aimerai voir ce golem marché/courir
Bonjour,
Est il possible d'avoir le lien du tuto que vous suivez ?
Le 06 avril 2015 à 14:18:03 SatanPetitFion a écrit :
Limite le pseudo, je te conseille de changer.
Le 09 avril 2015 à 10:28:05 _PeterPan_ a écrit :
Bonjour,Est il possible d'avoir le lien du tuto que vous suivez ?
Bonjour,
Voila le tuto en question
https://www.youtube.com/watch?v=ruxqMhUtk1g
Merci !
Bonsoir,
@Terminatrice2 :
Le tuto que vous suivez même si il à le mérite d'exister est assez ancien et contient pas mal d'erreur et ou de maladresses sur la façon d'aborder la programmation.
Rapidement j'ai réécrit la partie que semble poser problème en y mettant des annotations qui me semblait nécessaires.
Je ne suis pas sur de son fonctionnement c'est de l'écriture à la volée.
/// Mettre un #pragma strict de façon correcte
/// cela t'évitera certaines erreurs
#pragma strict
/// Indique toujours la portée de tes variables
/// meme si par défaut sous UnityScript elles sont de
/// portées publique c'est une bonne habitude à prendre
/// au moin pour la compréhension du code.
public var speed:float;
public var speedRun:float;
public var speedRotate:float;
public var gravity: float;
// Private Variable
private var controller:CharacterController;
private var moveDirection:Vector3;
private var deltaTime:float;
/// Toujours donner la portée d'une variable ainsi que son type
/// dans sa déclaration
private var characterContent : GameObject;
private var runAnim:boolean;
function Start () {
/// Puisque le pragma stric est actif il faut correctement caster
/// le GetComponent en type de CharacterController
controller = GetComponent("CharacterController") as CharacterController;
characterContent = GameObject.Find ("Perso");
}
function Update () {
/// Il est plus facile de traiter les fonctions dans un ordre
/// clair et compréhensible.
/// Ce n'est pas optimiser en terme de traitement mais
/// permet de mieu suivre le comportement désiré.
/// L'optimisation du code pouvant se faire une fois que
/// tout fonctionne correctement.
/// Mise en cache du Time.deltaTime
/// Il n'est pas certain que cela soit necessaire
/// mais pour la suite de ton code je l'incorpore
deltaTime = Time.deltaTime;
/// On récupère d'abord la direction à appliquer au player
var direction : Vector3 = Vector3(0,0,Input.GetAxis("Vertical"));
/// On mémorise si l'on doit etre en mode run en fonction des entrées clavier
runAnim =(Input.GetKey(KeyCode.LeftShift) || Input.GetKey(KeyCode.RightShift));
/// On peut maintenant calculer le vrai vecteur de déplacement
/// à appliquer à notre player.
/// C'est sa direction * sa vitesse (en fonction du mode run) * deltaTime
if (runAnim)
moveDirection = direction * speedRun * deltaTime;
else
moveDirection = direction * speedRun * deltaTime;
/// Pour la gestion de tes animation rien de changé
/// Ton problème venait en principe de ta ligne
/// characterContent = GameObject.Find ("Perso").transform
/// Si tu avais mis correctement le #pragma strict
/// et declarer le characterContent en GameObject
/// Tu n'aurais pas pu compiler ton code et trouvé certainement ton erreur.
}
Bonne continuation.
Salut
Mon jeu se joue à la vue fps, je cherche un moyen pour qu'un géant attrape le joueur dans sa main et le dépose. L'animation se déclenche en is trigger, j'ai pensé à utiliser des points de spawn pour téléporter le joueur directement dans la main ou déplacer la caméra, peut être qu'il existe un moyen plus pratique.
Bonsoir,
Peut être mettre un gameObject vide dans la hiérarchie de la main du géant.
Au moment voulue, changer la propriété parent de ton player avec cet gameObject.
C'est une idée comme cela. Tout dépends du résultat visuel escompté.
Bonne continuation.
Merci PeterPan !
Parcontre j'ai pas bien compris de la ligne 60 a 63, si j'ajoute cette condition
if(Input.GetKey(KeyCode.UpArrow) || Input.GetKey(KeyCode.DownArrow));
A quel moment je passe en idle, walk, run ?
Merci encore de ta précieuse aide !
Bonjour,
@Terminatrice2 :
En fait le code suivant n'est pas des mieux écrit :
Tester les touches haut et bas pour se déplacer ne sert a rien étant donné que ta vitesse et direction est déjà calculée.
A mon avis il faut traiter le problème comme ceci
/// Si aucun déplacement Mode idle
if ( moveDirection == Vector3.zero) {
characterContent.animation.CrossFade("idle", 0.2);
} else {
/// Autrement Animation déplacement
/// Si déplacement normal
if ( ! runAnim) {
characterContent.animation.CrossFade("walk", 0.2);
} else {
/// Autrement déplacement rapide
characterContent.animation.CrossFade("run", 0.2);
}
Code non testé...
Bonne continuation.
A noter qu'il existe une façon beaucoup plus simple, plus claire et plus rapide pour aborder le problème.
Le code donné est la pour te permettre de ne pas tout modifier sur l'existant de la suite du tuto sur lequel vous prenez exemple.
modifie ceci
if (runAnim)
moveDirection = direction * speedRun * deltaTime;
else
moveDirection = direction * speedRun * deltaTime;
En cela
if (runAnim)
moveDirection = direction * speedRun * deltaTime;
else
moveDirection = direction * speed * deltaTime;
Petite erreur de ma part.
Yo j'ai une petite question d'animation.
En gros je réfléchis à un concept basique de jeu de combat et j'aimerais savoir comment gérer l'interaction entre deux personnages.
Actuellement je sais comment animer un personnage et importer ses animations (marche, saut, etc...) dans Unity mais je n'ai aucune idée de la manière de gérer une animation qui utilise deux personnages en même temps (si un perso fait une clé de bras à l'autre par exemple)