@Fumari

Как создать на сцене игровой объект в координатах позиции курсора?

Всем привет. С помощью Instantiate создаю экземпляр объекта (Circle) на сцене (По щелчку левой кнопки мыши), присваиваю координаты Input.mousePosition. Объект появляется в километрах от того места, где я кликнул. Проект 2д.

using UnityEngine;

public class SnotCreater : MonoBehaviour
{
    public GameObject Circle;
    public GameObject CirclePrefab;

    void Start()
    {

    }

    void Update()
    {
        if (Input.GetMouseButtonDown(0))
        {

            Circle = Instantiate(CirclePrefab, Input.mousePosition, Quaternion.Euler(0,0,0)) as GameObject;
        }
}
}
  • Вопрос задан
  • 1965 просмотров
Решения вопроса 1
@youkerni
Unity3D developer
Mouse position находится в экранной системе координат, а префаб вы создаете в мировой.
Что бы перевести позицию мыши в мировую систему координат используйте метод
Camera.main.ScreenToWorldPoint().

using UnityEngine;

public class SnotCreater : MonoBehaviour
{
    public GameObject Circle;
    public GameObject CirclePrefab;

    void Start()
    {

    }

    void Update()
    {
        if (Input.GetMouseButtonDown(0))
        {
            var mousePos = Camera.main.ScreenToWorldPoint(Input.mousePosition);
            Circle = Instantiate(CirclePrefab, mousePos, Quaternion.Euler(0,0,0)) as GameObject;
        }
}
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы