Учитывайте, что с помощью значения TransformDirection направления, которое будет использоваться в raycasted, сравнивается с преобразованием сценария. Если вы установите угол на ноль, он будет стрелять в raycast в прямом направлении, к которому привязан сценарий. Если вы хотите сделать raycast независимой от которой сталкивается только преобразование делать Dir так:
var dir = new Vector3(Mathf.Sin(angle), 0, Mathf.Cos(angle));
принимать также в виду, что блок ваш угол? Mathf.Sin и Mathf.Cos принимают значение угла в радианах, если вы хотите использовать углы в градусах (0, 90, 180, 270), вам нужно преобразовать их в радианы перед вычислением Sin и Cos. Для этого просто умножьте, если с помощью Значение Rad/Deg:
angle = angle * Mathf.Deg2Rad;
И сделайте все, как раньше. Чтобы помочь вам больше, мне нужно, чтобы вы предоставили больше информации (результаты тестов, что вы хотите уточнить ...).
Какой результат вы получаете? Как это отличается от результата, который вы хотите? – rutter