Aucune des fonctions de cet asset ne donne le point d'intersection que tu recherches.
Comme dit, l'intersection de 2 plans ne donne pas un point, mais une ligne soit une infinité de points. Tu ne trouveras probablement pas une fonction toute faite.
points de contacts entre collision et différents plans
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
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
- boubouk50
- ModoGenereux
- Messages : 6228
- Inscription : 28 Avr 2014 11:57
- Localisation : Saint-Didier-en-Bresse (71)
Re: points de contacts entre collision et différents plans
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation
- Kaloverian
- Messages : 345
- Inscription : 10 Août 2016 03:03
Re: points de contacts entre collision et différents plans
solution trouvée qui n'utilise pas les points de contact ni le RayCasting:
Code : Tout sélectionner
using UnityEngine;
public class intersect_of_plans : MonoBehaviour
{
public GameObject base_plan, plane1, plane2, intersectionPointPrefab, intersectionPointPrefab2;
public KeyCode imprim;
void Update()
{
// Récupérer les normales des plans
Vector3 normal_base=base_plan.transform.up.normalized;
Vector3 normal1 = plane1.transform.up.normalized;
Vector3 normal2 = plane2.transform.up.normalized;
// Calculer la direction de la droite d'intersection de base_plan et plane1
Vector3 Direction1 = Vector3.Cross(normal_base, normal1).normalized;
// Calculer la direction de la droite d'intersection de base_plan et plane2
Vector3 Direction2 = Vector3.Cross(normal_base, normal2).normalized;
Vector3 projectedPoint1 = Vector3.ProjectOnPlane(plane1.transform.position, Direction1);
intersectionPointPrefab.transform.position = projectedPoint1;
Vector3 projectedPoint2 = Vector3.ProjectOnPlane(plane2.transform.position, Direction2);
intersectionPointPrefab2.transform.position = projectedPoint2;
if (Input.GetKeyDown(imprim))
{
print("point projeté 1" + projectedPoint1);
print("point projeté 2" + projectedPoint2);
}
}
}