У меня есть сфера с именем Pointer, которая может перемещаться везде с помощью transform.Translate (), но я хочу, чтобы эта сфера могла двигаться только внутри полусферы с именем LimitSphere, я не знаю, как это сделать.
я уже пытался использовать Mathf.Clamp, но, как вы можете видеть на этом изображении
, но когда я устанавливаю вписанный квадрат, я теряю слишком много места (желтый)
икогда я устанавливаю ограниченный квадрат, из круга выходит слишком много места (фиолетовый / розовый)
Так есть ли решение ограничить движение внутри сферы?
РЕДАКТИРОВАТЬ: Это мой фактический код:
using UnityEngine;
using System.Collections;
public class TranslationClavier : MonoBehaviour {
public float vitesse_translation = 1.0f;
void Update () {
if (Input.GetKey(KeyCode.DownArrow))
{
transform.Translate(Vector3.up * vitesse_translation * Time.deltaTime);
}
if (Input.GetKey(KeyCode.UpArrow))
{
transform.Translate(Vector3.down * vitesse_translation * Time.deltaTime);
}
if (Input.GetKey(KeyCode.RightArrow))
{
transform.Translate(Vector3.right * vitesse_translation * Time.deltaTime);
}
if (Input.GetKey(KeyCode.LeftArrow))
{
transform.Translate(Vector3.left * vitesse_translation * Time.deltaTime);
}
if (Input.GetKey(KeyCode.I))
{
transform.Translate(Vector3.forward * vitesse_translation * Time.deltaTime);
}
if (Input.GetKey(KeyCode.K))
{
transform.Translate(-Vector3.forward * vitesse_translation * Time.deltaTime);
}
}
}
ниже вы можете увидеть мою маленькую сферу, и я хочу зажать ее внутри большого коллайдерного шара