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);
        }
    }
}