Exemplo n.º 1
0
    private static DoorAccessItem GetDoorAccessItem(Transform child)
    {
        if (!child.name.ToLower().Contains("door"))
        {
            return(null);
        }
        DoorAccessItem item = null;

        if (child.childCount == 0)
        {
            item = child.gameObject.AddMissingComponent <DoorAccessItem>();
            if (IsNormalDoor(false, child))
            {
                GameObject leftDoor = child.gameObject;
                item.Init(true, leftDoor, null);
            }
            else
            {
                item.InitRollingDoor();
            }
        }
        else if (child.childCount == 2)
        {
            item = child.gameObject.AddMissingComponent <DoorAccessItem>();
            GameObject leftDoor  = child.GetChild(0).gameObject;
            GameObject rightDoor = child.GetChild(1).gameObject;
            item.Init(false, leftDoor, rightDoor);
        }

        var colliders = child.FindComponentsInChildren <MeshCollider>();

        foreach (MeshCollider collider in colliders)
        {
            //collider.enabled = false;//防止妨碍进入
            //GameObject.Destroy(collider);//防止妨碍进入
            collider.convex    = true;
            collider.isTrigger = true;
        }
        return(item);
    }