Files
ScienceLab.TypesOfMotion/Assets/Scripts/PlayZone.cs
2026-02-18 00:08:49 +02:00

37 lines
942 B
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayZone : MonoBehaviour
{
private BoxCollider _box;
private void Awake()
{
_box = GetComponent<BoxCollider>();
}
public Vector3 ClampToZone(Vector3 position)
{
Vector3 localPos = transform.InverseTransformPoint(position);
Vector3 halfSize = _box.size / 2f;
localPos.x = Mathf.Clamp(localPos.x, -halfSize.x, halfSize.x);
localPos.z = Mathf.Clamp(localPos.z, -halfSize.z, halfSize.z);
return transform.TransformPoint(localPos);
}
public Vector3 GetRandomPoint()
{
Vector3 halfSize = _box.size / 2f;
float randomX = Random.Range(-halfSize.x, halfSize.x);
float randomZ = Random.Range(-halfSize.z, halfSize.z);
Vector3 localPoint = new Vector3(randomX, 0f, randomZ);
return transform.TransformPoint(localPoint);
}
}