0
유니티 2d에서 비전 필드를 생성하려고합니다. 캐릭터가보고있는 위치에 따라 회전하는 회전하는 게임 개체에서 레이 캐스트를 투사합니다. 그러나이 캐릭터는 앞뒤로 움직이므로 왼쪽으로 움직일 때 transform.scale을 -1로 설정합니다. 문제는 내가 이것을 할 때 레이 캐스트가 캐릭터와 함께 방향을 바꾸지 않고 오른쪽으로 향하는 것을 유지하지 않는다는 것입니다! 여기에 코드가 있는데, 나는 분명히 뭔가 빠져있다! 어떤 도움을 주시면 감사하겠습니다!회전 변환에서 유니티 2D 레이캐스팅
Transform parent;
float vision_angle_ = 50;
float direction;
Vector3 angle;
Vector2 position;
Quaternion q;
int x = 10;
void Start()
{
parent = transform.parent;
}
void Update()
{
direction = parent.GetComponent<Behaviour>().direction;
angle = new Vector2 (x, Mathf.Tan ((vision_angle_) * .5f * Mathf.Deg2Rad) * x);
q = Quaternion.AngleAxis (1, -transform.forward);
position = new Vector2 (transform.position.x, transform.position.y);
for (float i = 0; i < 50; i++) {
angle = q * angle;
RaycastHit2D tile_hit = Physics2D.Raycast (position, transform.TransformDirection (angle), 10);
Debug.DrawRay (position, transform.TransformDirection (angle), Color.green);
}
}