Я перемещаю объект с помощью радиопередачи мыши, но проблема, с которой я сталкиваюсь, заключается в том, что он сталкивается с другими объектами, у моего объекта есть 4 радиопередачи от его центра в углах (вперед, назад, вправо, влево), и эти радиопередачи сталкиваются со стенами. и затем я получаю лучевую передачу самого низкого диапазона и поворачиваю объект в соответствии с ним, что я хочу сделать, так это то, что при определенном диапазоне лучевой передачи самого низкого диапазона объект не go в обратном направлении, даже если я принудил его к go, это должен только go вперед, вправо и влево.
Сценарий преобразования объекта:
currentPlaceableObject.transform.position = hitInfo.point; //hitinfo is mouse position
currentPlaceableObject.transform.rotation=Quaternion.FromToRotation(currentPlaceableObject.transform.up, hitInfo.normal) * currentPlaceableObject.transform.rotation;
Вращение на луче ближнего радиуса действия:
if(raycastHit.distance < 2.0f)
{
currentPlaceableObject.transform.rotation = Quaternion.FromToRotation(Vector3.forward,raycastHit.normal);
currentPlaceableObject.transform.rotation = Quaternion.Euler(0.0f,currentPlaceableObject.transform.eulerAngles.y, 0.0f);
}
Я могу поделиться своим сценарием, но он довольно грязный. Спасибо.