[Résolu] Raycast retourne toujours root

Questions à propos du scripting. Hors Shader, GUI, Audio et Mobile.
Avatar de l’utilisateur
Tsurugi21
Messages : 221
Inscription : 26 Nov 2012 23:21
Localisation : Dans mon sous-sol ou chez des potes, probablement

[Résolu] Raycast retourne toujours root

Message par Tsurugi21 » 17 Jan 2015 06:27

Salut salut!

Voila, j'ai comme un petit problème: Lorsque j'envois un raycast (Physics.Raycast), la variable hit retournée renvoie toujours le root...
à la base ce n'est pas un problème, mais tentant d'avoir une compétence "Backstab", détecter le dos de l'enemi devient impossible :x .Unity aurais-t-il modifié la fonction raycast? Où fais-je une erreur quelque part? J'ai vérifié sur google, rien ne correspond, et je n'utilise pas hit.transform.root. Merci :)

Code : Tout sélectionner

	if(Physics.Raycast(monrayon,hit)){
		if(hit.distance <= range){
}else if(tagg == "Player"){
					backstabmult = 1.0;
					if(PlayerPrefs.HasKey("backstab")){
						if(hit.transform.gameObject.name == "back"){
							backstabmult = 1.4;
						}
					}
					print(hit.transform.gameObject.name);
					BANK.plcore.HurtPlayer(Mathf.Round(dmg * backstabmult) + bonusDamage,hit.transform.root.transform.networkView);
(Le script a été abrégé, ce n'est pas un pur copié-collé)
Dernière édition par Tsurugi21 le 17 Jan 2015 16:33, édité 1 fois.
Graphics doesnt mean everything

bdream
Messages : 28
Inscription : 25 Oct 2014 23:43
Localisation : Dans un nuage (au dessus de Bordeaux)
Contact :

Re: Raycast retourne toujours root

Message par bdream » 17 Jan 2015 11:59

Salut!

Une idée peut être bête. L'objet "back" est le fils d'un objet "player" j'imagine. Si l'objet "player" à un collider, est-ce qu'il n'englobe pas le collider de "back" ? Ce qui fait que le raycast collisionne d'abord avec "player". non ? Dans ce cas la, peut être utiliser Physics.RaycastAll.
WIP - Futuristic racing game PolyRace

Avatar de l’utilisateur
Tsurugi21
Messages : 221
Inscription : 26 Nov 2012 23:21
Localisation : Dans mon sous-sol ou chez des potes, probablement

Re: Raycast retourne toujours root

Message par Tsurugi21 » 17 Jan 2015 16:32

Non je suis pas si bête que ça :mrgreen: Il y a bel et bien un collider qui englobe "back", mais il est en layer "Ignore Raycast" (seulement lui, pas les autres). j'ai fait d'autres tests, les raycasts ne me renvoient que les roots des objets.

EDIT: J'ai trouvé: apparement, unity considère que des child ne sont qu'une addition aux parents, donc le transform renvoyé est celui du root.
Colliders on child objects are treated as though they are additions to the parent collider (this is what you want for most physics tasks). However, the RaycastHit object also has a field for the collider that was hit. The reported transform is the parent's transform but the collider is the exact collider that was hit. If you need the transform of the child object, you can use the collider's transform property, etc.
- andeeeeee
(http://forum.unity3d.com/threads/raycas ... ame.57172/)

Merci :lol:
Graphics doesnt mean everything

Répondre

Revenir vers « Scripting »