Somebody Posted July 5, 2022 Posted July 5, 2022 Я начинающий в этом движке и не как ни могу понять как узнать позицию обьекта в пространстве, всю документацию пересмотрел и так и не понял как это сделать. Может я просто не могу найти тот класс который мне нужен? using System; using System.Collections; using System.Collections.Generic; using Unigine; [Component(PropertyGuid = "5ff39bf967441504a8a79c93dfaf78d64f635a3d")] public class Test : Component { private void Update() { Node node = World.GetNodeByName("Cuboid"); float worldPos = (float)node.GetWorldDirection(MathLib.AXIS.X); if (Input.IsKeyUp(Input.KEY.E)) { float TransformX = worldPos + 1.0f; Log.Message("Глобальная позиция:" + worldPos + "\n"); Log.Message("Координаты оси X:" + TransformX +"\n"); node.WorldTranslate(TransformX, 0.0f, 0.0f); } } }
Somebody Posted July 5, 2022 Author Posted July 5, 2022 Разобрался но не доканца, как мне например менять значение vec3.RIGHT (там по умолчанию 1.0, 0.0, 0.0)? Или менять значение вектора RIGHT нельзя? Можно создать свой новый вектор со своими значениями? using System; using System.Collections; using System.Collections.Generic; using Unigine; [Component(PropertyGuid = "5ff39bf967441504a8a79c93dfaf78d64f635a3d")] public class Test : Component { private void Update() { Node node = World.GetNodeByName("Cuboid"); vec3 worldPos = node.GetWorldDirection(MathLib.AXIS.X); worldPos = vec3.RIGHT; if (Input.IsKeyDown(Input.KEY.E)) { vec3 TransformX = worldPos + vec3.RIGHT; node.WorldTranslate(TransformX); } } }
cash-metall Posted July 6, 2022 Posted July 6, 2022 11 hours ago, Somebody said: как узнать позицию обьекта в пространстве в С# многие методы сделаны через проперти. т.е. не надо писать GetЧтоТоТам или SetЧтоТоТам просто сразу берем свойство vec3 position = node.WorldPosition; позиция в глобальных координатах https://developer.unigine.com/en/docs/2.15.1/api/library/nodes/class.node?rlang=cs#WorldPosition так же и изменять ее node.WorldPosition = new vec3(1,2,3); 1
Recommended Posts