Animtor.Getbool, Raycast
Animator.Getbool
Setbool과 달리 매개변수로 전달한 애니메이터 값을 가져올 수 있습니다.
타입은 bool 형
// Jump
if (Input.GetButtonDown("Jump") && !animator.GetBool("isJumping"))
{
rb2d.AddForce(Vector2.up * jumpPower, ForceMode2D.Impulse);
animator.SetBool("isJumping", true);
}
점프 방지 코드를 애니메이터 만으로 간단히 작성 가능(jump count 설정 불필요)
Raycast
가상의 선(Ray)을 쏴서 그 선이 충돌하는 오브젝트의 거리, 위치등에 대한 정보를 반환합니다.
https://docs.unity3d.com/6000.0/Documentation/ScriptReference/Physics.Raycast.html
Unity - Scripting API: Physics.Raycast
Description Casts a ray, from point origin, in direction direction, of length maxDistance, against all colliders in the Scene. To select which layers a ray should collide with, use a LayerMask. Specifying queryTriggerInteraction allows you to control wheth
docs.unity3d.com
RaycastHit2D raycastHit2D = Physics2D.Raycast(rb2d.position, Vector3.down, 1,LayerMask.GetMask("Platform"));
레이캐스트는 physics를 사용합니다. (2D는 뒤에 2D가 붙음)
캐릭터 RigidBody Position에서 아래로 거리 1만큼 Ray를 쏴서
"Platform" 레이어만 레이캐스트의 충돌 대상으로 설정합니다.
raycastHit2D.collider를 통해 충돌여부를 확인할 수 있습니다. (없을경우 null)
Debug.DrawRay(rb2d.position, Vector3.down, Color.red);
Debug를 통해 ray가 쏘는 범위를 육안으로 확인 가능합니다.