Учет динамического положения и поворота в оснастке, чтобы функционировать - PullRequest
0 голосов
/ 04 июня 2019

Я пытаюсь создать привязку к функции, которая также учитывает поворот твердого тела и изменение положения.Мне нужно, чтобы привязать блок к закругленной точке относительно мыши.В данный момент я округляю положение мыши до целого числа, и у меня есть положение главных объектов в учетной записи, но когда главный объект вращается, подчиненный объект, который я привязываю, будет менять позиции, чем дальше находится мышь.

Я изучил API-интерфейсы сетки Unity и API-интерфейсы gridlayout, но я не уверен, подходит ли это.Я думаю, что это вопрос математики или что-то, возможно, более сложное.

public void SnapToGrid()
{

    Vector2 mousePosition = Camera.main.ScreenToWorldPoint(Input.mousePosition);

    Vector2 masterObjectPos = new Vector2(dataManagement.masterObject.transform.position.x, dataManagement.masterObject.transform.position.y);

    Vector2 mouseToMasterObjectPos = masterObjectPos - mousePosition;

    float mouseMasterObjectDistance = Vector2.Distance(masterObjectPos, mousePosition);

    Vector2 camPos = new Vector2(Camera.main.transform.position.x, Camera.main.transform.position.y);

    mousePosition -= masterObjectPos;

    Debug.LogWarning("MOUSEPtomasterpos: " + mouseToMasterObjectPos);
    Debug.LogWarning("mouseobject distance " + mouseMasterObjectDistance);

    int xCount = Mathf.RoundToInt(mousePosition.x / gridSizeX);
    int yCount = Mathf.RoundToInt(mousePosition.y / gridSizeY);

    Vector2 result = new Vector2((float)xCount * gridSizeX, (float)yCount * gridSizeY);

   result += masterObjectPos;

    result += mouseToMasterObjectPos;

    template.transform.position = result;
}

Я пытался включить положение мыши за вычетом положения главного объекта, что бы заморозить блок на месте, но этоне работаетЯ хочу, чтобы блок оставался привязанным, но учитывал изменения положения и поворота.Что происходит, когда объект вращается, блок начинает двигаться (что-то связанное с позицией главного объекта).

...