Мне нужно отобразить выделенную область в сетке. Сетка — это просто объект сетки, назначенный игровому объекту и представленный графическим материалом шейдера для визуализации сеток. В этой задаче часть сетки можно игнорировать.
Теперь, чтобы имитировать выделение, я использую четырехугольник, поскольку его размер масштабируется точно до 1 единицы. Но я не уверен, как правильно установить его положение, поскольку оно показывает некоторое смещение. Я хочу, чтобы верхний левый угол четырехугольника начинался с начальной позиции мыши, как это происходит в обычном поле выбора. Вот код:
private void ResizeSelectionBox()
{
//controlledVisualization is the quad assigned;
Vector3 StartMousePosition = ...;
float width = Input.mousePosition.x - StartMousePosition.x;
float height = Input.mousePosition.y - StartMousePosition.y;
// Calculate the actual width and height based on the positions
float actualWidth = Mathf.Abs(width);
float actualHeight = Mathf.Abs(height);
// Set the transform's position and scale of the quad
controlledVisualization.transform.position = StartMousePosition / quadSizeUnit;
controlledVisualization.transform.localScale = new Vector3(actualWidth, actualHeight, 1f)/quadSizeUnit;
}
Подробнее здесь: https://stackoverflow.com/questions/783 ... ection-box
Единство, масштабирование и позиционирование четырехкратного размера для представления поля выбора ⇐ C#
Место общения программистов C#
1714356891
Anonymous
Мне нужно отобразить выделенную область в сетке. Сетка — это просто объект сетки, назначенный игровому объекту и представленный графическим материалом шейдера для визуализации сеток. В этой задаче часть сетки можно игнорировать.
Теперь, чтобы имитировать выделение, я использую четырехугольник, поскольку его размер масштабируется точно до 1 единицы. Но я не уверен, как правильно установить его положение, поскольку оно показывает некоторое смещение. Я хочу, чтобы верхний левый угол четырехугольника начинался с начальной позиции мыши, как это происходит в обычном поле выбора. Вот код:
private void ResizeSelectionBox()
{
//controlledVisualization is the quad assigned;
Vector3 StartMousePosition = ...;
float width = Input.mousePosition.x - StartMousePosition.x;
float height = Input.mousePosition.y - StartMousePosition.y;
// Calculate the actual width and height based on the positions
float actualWidth = Mathf.Abs(width);
float actualHeight = Mathf.Abs(height);
// Set the transform's position and scale of the quad
controlledVisualization.transform.position = StartMousePosition / quadSizeUnit;
controlledVisualization.transform.localScale = new Vector3(actualWidth, actualHeight, 1f)/quadSizeUnit;
}
Подробнее здесь: [url]https://stackoverflow.com/questions/78399996/unity-quad-size-scalling-and-positioning-to-represent-selection-box[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия