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