a17d2cad2f1b782a99595a48fa9f3433f728bd6f6b8abd3c665ea3f8dd



빨간색이 캐릭터고 파란색이 버튼을 누를시 캐릭터가 이동할 위치야


스킬을 썼을 때 만약 파란색과 땅이 겹치면 Raycast를 해서 닿는곳에서 x축으로 -0.5f 인 곳에 캐릭터를 이동시키고 싶은데


Raycast 부분을 제대로 구현 못하겠어


playerScript.transform.position = Physics2D.Raycast((Vector2)playerScript.transform.position, Vector2.right, 4.5f).point + new Vector2(-0.5f, 0f);


이렇게하면 본인의 collision에 부딪혀서 제자리에서 x축으로 -0.5f만큼 이동하더라고


그래서 LayerMask 부분 추가해서 Player의 LayerMask인 9를 무시하도록 적었는데


playerScript.transform.position = Physics2D.Raycast((Vector2)playerScript.transform.position, Vector2.right, 4.5f, ).point + new Vector2(-0.5f, 0f);


Raycast반환값이 (0f,0f) 원점이 되더라


9가 아니더라도 다른 LayerMask를 추가해봐도 그래


왜 이런거야? 일단 검색해서 다른 방법으로 구현은 했는데 안되는 이유를 모르겠어


int layerMask = 1 << LayerMask.NameToLayer("Ground");


이렇게 해주고 layerMask 넣는 부분에 이거 넣으니까 되긴하는데 이것도 왜 되는건지 모르겠어