Так пускаю лучи: (castDir - это 4 направления от текущего камня: Vector2.up, Vector2.down, Vector2.left, Vector2.right) Используется C#
Синтаксис:
Используется javascript
RaycastHit2D hit = Physics2D.Raycast(transform.position, castDir);
Debug.DrawRay(transform.position, castDir, Color.red, 1000f);
Debug.Log("transform.position = " + transform.position);
Debug.Log("hit = " + hit.collider + " - " + hit.collider.transform.position);
Debug.DrawRay(transform.position, castDir, Color.red, 1000f);
Debug.Log("transform.position = " + transform.position);
Debug.Log("hit = " + hit.collider + " - " + hit.collider.transform.position);
При этом отрисовка лучей через DrawRay производится правильно во все 4 стороны.
Обмен камней местами делаю так: (element - это предыдущий камень, с которым меняю выбранный) Используется C#
Синтаксис:
Используется javascript
Vector3 lastPos = gameObject.transform.position;
Vector3 curPos = element.transform.position;
element.transform.position = new Vector3(lastPos.x, lastPos.y, transform.position.z);
gameObject.transform.position = new Vector3(curPos.x, curPos.y, transform.position.z);
Vector3 curPos = element.transform.position;
element.transform.position = new Vector3(lastPos.x, lastPos.y, transform.position.z);
gameObject.transform.position = new Vector3(curPos.x, curPos.y, transform.position.z);
Если я НЕ меняю камни местами и отправляю лучи - то все окружение камня возвращает правильно, а если произвожу обмен, а затем пускаю лучи - обязательно возвращает тот же объект (с того направления, с которого он переместился при обмене) (((
Я определил только, что все дело в этом обмене камней местами, потому что, как писал уже выше - без обмена лучи возвращают все правильно. А вот почему так происходит - ума не приложу! Помогите, кто знает или сталкивался с чем-то подобным..