у меня есть 2D-дизайн в микростанции, и я хотел представить этот дизайн в Интернете с помощью любого инструмента (javascript/Unity 3D или любого другого), где веб-инструмент не будет иметь всех функций, но основные функции, такие как изменение формы или добавление новой формы, должны быть имеется в наличии.
На данный момент мой подход заключается в том, что после того, как я создал дизайн на микростанции, я фиксирую свойства фигур, таких как координаты линии, и теперь использую эти координаты, которые я хотел представить в браузере, поскольку это 2D-дизайн, поэтому он будет построен в каком-то месте. (x, y), например, я создал линию в микростанции от (2,2) до (10,10), так что это будет прямая линия, и у меня есть все координаты, которые я пытался перерисовать в Unity, что я могу сделать но я столкнулся с проблемой изменения длины с (2,2) на (20,20) щелчком мыши. И моя цель — сделать это во время выполнения, а не в редакторе Unity.
Это пример прямой линии, которую я хотел сделать для всех геометрических фигур, буду признателен за любое руководство.
На данный момент я пытаюсь сделать это в Unity, но борюсь с частью редактирования. Есть ли способ добиться этого в единстве?
Я также просмотрел различные библиотеки javascript, такие как konvaJS, makerJS, ThreeJS и т. д., но, кроме konvajs, ни одна из других библиотек не предоставляет такие возможности, как изменение формы, в Konva также создание формы с помощью мыши не нашел решения для этого.
Можем ли мы достичь этого с помощью любого из двух подходов, конечно, я не ищу всю функциональность, а только несколько пользовательских функций, если да, какой подход будет лучшим и какой инструмент мне следует использовать. Любое руководство будет полезным.
Я согласен, что не все здесь знают, что Unity может понимать библиотеку JS, поэтому я задал два вопроса, как это можно сделать с помощью Unity или Javascript, если есть парень с Javascript, он может ответить, иначе ответит парень из Unity, и лучшим из решений будет принятый
Я имею в виду, что вы должны быть более конкретными в своей бизнес-логике: создал дизайн в микростанции, затем я фиксирую свойства фигур, такие как координаты линии, и теперь использую эти координаты, что такое фиксируя свойства фигур? Как использовать эти координаты? Что вы хотите сделать с этими координатами?
@zwcloud спасибо за советы, как было предложено отредактировать мой вопрос, любая помощь будет оценена.
Чтобы нарисовать отрезок линии, вы можете использовать LineRenderer
.
//two points of the line-segment are known (or got from the Transform of GameObject)
Vector3 start;
Vector3 end;
GameObject myLine = new GameObject();
myLine.transform.position = start;
myLine.AddComponent<LineRenderer>();
LineRenderer lr = myLine.GetComponent<LineRenderer>();
lr.material = new Material(Shader.Find("Particles/Alpha Blended Premultiply"));
lr.SetColors(color, color);
lr.SetWidth(0.1f, 0.1f);
lr.SetPosition(0, start);
lr.SetPosition(1, end);
//to change the points of this line
myLine.transform.position = another_start;
lr.SetPosition(0, another_start);
lr.SetPosition(1, another_end);
Есть и другие решения:
Чтобы получить позицию щелчка мышью, используйте Camera.main.ScreenToWorldPoint(Input.mousePosition)
.
Чтобы определить, когда щелкнули мышью, используйте Input.GetMouseButtonUp
.
как насчет изменения этой строки во время выполнения?
действительно спасибо за ваше руководство, еще одно сомнение, откуда вы взялись another_start
и another_end
я хотел зафиксировать это с помощью щелчка мыши, у меня нет значения для этого, у меня есть значение для start
и end
только что-то вроде перетаскивания длины линии
@techipank Рад это знать! Пожалуйста, проголосуйте за ответ, если считаете его полезным.
Не все здесь знают, что Unity понимает three.js, konvajs и microstation. Что это? Я никогда не пользуюсь конвайсами и микростанциями и не понимаю, чего вы хотите добиться после перехода на Unity. stackoverflow.com/help/как спросить