Page 2 sur 2
Re: points de contacts entre collision et différents plans
Publié : 17 Avr 2024 08:48
par boubouk50
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.
Re: points de contacts entre collision et différents plans
Publié : 19 Avr 2024 01:50
par Kaloverian
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);
}
}
}