Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Как нужно дописать этот код?

Ivan Toroyanov Ученик (100), на голосовании 7 месяцев назад
как нужно дописать этот код чтобы когда мышка отпускала объект его местоположение по координатам (x, y) округлялось до целого числа?

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class NewBehaviourScript : MonoBehaviour
{
private Vector3 pointScreen;
private Vector3 offset;
void OnMouseDown()
{
pointScreen = Camera.main.WorldToScreenPoint(gameObject.transform.position);
offset = transform.position - Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, pointScreen.z));
}
void OnMouseDrag()
{
Vector3 curScreenPoint = new Vector3(Input.mousePosition.x, Input.mousePosition.y, pointScreen.z);
Vector3 curPosition = Camera.main.ScreenToWorldPoint(curScreenPoint); transform.position = curPosition;
}
}
Голосование за лучший ответ
♡$ⴎG@r₱u₷sყ♡ Искусственный Интеллект (144285) 8 месяцев назад
Чтобы округлить координаты до целого числа при отпускании объекта мышкой, можно использовать метод `Mathf.Round` для x и y координат. Вам нужно добавить метод `OnMouseUp`, который будет выглядеть примерно так:

```csharp
 void OnMouseUp()  
{
transform.position = new Vector3(
Mathf.Round(transform.position.x),
Mathf.Round(transform.position.y),
transform.position.z
);
}

```

Этот метод округлит координаты `x` и `y` до ближайшего целого числа, когда объект будет отпущен.
Похожие вопросы