bonsoir, j'ai converti en mp3 même si c'est lourd dans les 2 sens du terme
Salut,
je (re)fais appel a vous car je rencontre un autre problème.
Je voudrais que quand mon personnage s'approche d'un objet (ici une torche) à l'appui d'une touche le prenne. J'ai juste fait un test de collision (trigger/character) et ça marche bien. Mais dès que j’appelle l'appui d'une touche l'action ne se fait plus.
Voila mon code : http://pastebin.com/wVcb85DQ
Merci d'avance
Il faut que le script soit assigné au perso et pas à la sphère, fait donc if(coll.tag == "Sphere")
Et n'oublie pas de mettre la sphère en Trigger
Est-ce qu'il est possible de faire un "Volume" à la UDK dans Unity ? En gros, une zone (dont un peu changer la taille et la forme) avec une fonction qui permet de dire si un objet est "à l'intérieur". Par exemple, pour faire une zone où les unités perdent des points de vie à chaque seconde (pour prendre un exemple très simple).
Ca doit être possible en utilisant des tricks via les collisions mais c'est moche et j'imagine qu'il doit y avoir un moyen plus propre.
+ Bonjour et merci d'avance, où sont mes manières ?
_Azerty777 Les colliders Box Collider, Sphere Collider et tu les mets en Trigger et puis tu code OnTriggerEnter ou OnTriggerStay c'est des choses basiques ça tu peux trouver des tutos partout sur Youtube.
"OnTriggerStay is called almost all the frames for every Collider other that is touching the trigger." (tiré de la doc)
C'est pas vraiment ce que je cherche. Ce que je veux c'est pouvoir écrire un truc du genre (mix UnrealScript/pseudo-code incoming) :
if (volume.Encompasses(*objet en question*))
*Exécuter des instructions en rapport avec l'objet*
Peut-être que mon exemple était mal choisi vu qu'effectivement l'idée de perte des points de vie nécessite un check fréquent, j'aurais dû réfléchir plus longtemps. Je pensais plutôt à genre "A un point donné, je veux vérifier que mon objet se trouve toujours dans la zone", mais si ça balance des vérifications à chaque frame ça risque de devenir rapidement assez lourd, non ?
Donc tant qu'à faire autant donner le vrai exemple : je veux faire une zone spéciale qui permette de construire des bâtiments (genre le Creep des Zergs de Starcraft, ou la version Undead de Warcraft III). Du coup je veux vérifier que le joueur est en train de construire dans la zone, mais une fois que le bâtiment est construit j'ai plus besoin de vérifier, et surtout pas de le faire à chaque frame.
Mais bon ok, dans tous les cas il semblerait bien que je vais devoir utiliser un bon vieux Box Collider. Fuck.
Bonjour,
Dans ta détection de collision, désactive le collider correspondant.
Collider.enabled
Enabled Colliders will collide with other colliders, disabled Colliders won't.
void OnTriggerEnter(Collider other)
{
____other.enabled = false;
}
Merci Adridu84 ça marche, Est ce qu'il y a une commande pour passer un game object en Enfant d'un autre objet pendant le jeux ?
MediateurOfGame Voir le profil de MediateurOfGame Citer ce postCacher ce postCacher les posts de ce pseudo
Posté le 24 février 2014 à 16:18:56 Avertir un administrateur
void OnTriggerEnter(Collider other)
{
____other.enabled = false;
}
J'imagine que c'est pour moi. Le truc c'est que j'utilise pas les Colliders dans mon code. Les MeshAgents et MeshObstacles obtiennent le même résultat, donc mes unités n'ont même pas d'objet Collider et ça marche super bien pour le reste d'ailleurs. Et apparemment un BoxCollider peut pas réagir avec un MeshAgent ? Voilà une double dose d'emmerdement.
Aha, je pense avoir trouvé en fait. Avec le collider (que je désactive) je peux accéder à un objet Bounds, qui possède une fonction "Contains" qui est exactement ce que je recherchais, l'équivalent de "Encompasses" en UnrealScript. Juste que je dois faire une Box/Sphere au lieu de pouvoir accéder directement aux Bounds apparemment.
Bin @_Azerty777:
Si tu gère ta physique toi même... Quoi de mieux pour être efficace (et tu as bien raison pour ce cas).
A bientôt.
Au final, j'ai trouvé tout seul Maintenant dernier problème qui se pose avec cette torche c'est que j'aimerais bien qu'on puisse la voire dans le fog (sachant qu'il est noir(jeux d'horreur)).
Merci pour votre aide
J'ai réussi à faire un générateur de terrain ! Je vous montre sa demain
Je veux bien voir ça !
Je t'envoie sa en vitesse, je doit y aller, à ce soir !
http://sdz.tdct.org/sdz/unity3d-creation-d-un-menu-avec-curseur-personnalise.html
Salut tout le monde !
J'ai un petit soucis pour accéder à une variable d'un script à l'autre en C#...
J'ai un script avec un int nommé "waveCount" nommé GroundScript.cs et je tente d'y accéder dans mon autre script nommé "GameManager.cs"
Pour cela, j'ai procédé comme ceci : http://pastebin.com/HMCmhNAd
Cela fonctionne, mais j'ai deux soucis :
Pour pouvoir accéder à la variable sans erreurs, je dois utiliser GameObject.Find ("Ground"); (qui est mon GameObject avec le script).
Or, le problème est que je suis obligé d'utiliser cela à la ligne 30, dans OnGUI
De ce fait, je fais la recherche de gameobject à chaque frame de mon jeu c'est bien ça ? Je n'arrive pas à l'apeller dans Start par exemple... Sinon la variable n'est pas définie dans OnGUI.
Je sais pas si je suis très clair...
L'autre soucis est qu'avec cette méthode, la syntaxe est très lourde : groundScript.GetComponent<GroundScript>().waveCoun
t
pour accéder à la variable... :s
Est-ce que je m'y prends correctement ?
Merci par avance j'espère que vous avez réussi à comprendre
Générateur de map !
https://googledrive.com/host/0B4VjzNB7vwpENzdGeWtqYUtLREU/generation.html
Je suis à un stade plus avancé (arbres, monstres, etc..) mais je n'ai mit dans cette démo que la génération du sol.
@LECROU :
Un exemple de code pour résoudre ton problème.
TargetScriptName targetScript;
void Start()
{
targetScript = GameObject.Find("NomObjet").GetComponent<TargetScr
iptName>();
}
void Update()
{
if(Vector3.Distance(targetScript.transform.positio
n,
transform.position) < 10)
{
targetScript.uneVariable -= uneValeur;
}
}