SphereCollider3D

Namespace:

namespace Lenga\Engine\Core;

class SphereCollider3D

Methods

isTouching

public function isTouching(bool $includeTriggers = true, ?int $layerMask = null)

getContacts

public function getContacts(bool $includeTriggers = true, ?int $layerMask = null)

moveAndSlide

public function moveAndSlide(Vector3 $delta,
        float $skinWidth = 0.05,
        bool $includeTriggers = false,
        ?int $layerMask = null,)

Example

use Lenga\Engine\Core\Behaviour;
use Lenga\Engine\Core\SphereCollider3D;

class BallPhysics extends Behaviour
{
    public function start(): void
    {
        $collider = $this->getComponent(SphereCollider3D::class);
        $collider->radius = 0.5;
        $collider->center = [0, 0, 0];
    }

    public function update(): void
    {
        $collider = $this->getComponent(SphereCollider3D::class);

        // Check if touching any objects
        if ($collider->isTouching()) {
            $contacts = $collider->getContacts();
            foreach ($contacts as $contact) {
                Debug::log('In contact with: ' . $contact->gameObject->name);
            }
        }
    }
}