
C# 'Discards'
Discards는 C# 7.0에 도입된 기능으로, 의도적으로 사용하지 않을 값을 위한 플레이스홀더 변수입니다. 코드를 읽는 사람에게 특정 표현식의 결과를 무시하고자하는 의도를 분명히 전달하죠.
Discards의 장점은 단일 변수이므로 저장 공간 할당도 받지 않아 메모리 할당을 줄입니다. 가독성과 유지보수성을 향상시키죠. 사용 방법은 ( _ ), 즉 밑줄, '_' 를 변수명으로 사용하며 되는것입니다.
저는 낙하를 하는 과정에서 (_)를 사용했습니다.
protected override void OnContactWithGroundExit(Collider collider)
{
base.OnContactWithGroundExit(collider);
if (IsThereGroundUnderneath())
{
return; //떨어지지 못하게함
}
//살짝 떨어지는데 Fall 애니메이션 하면 어색하니까 좀 높은 거리 낙하시에만 추가할 것임 (레이어로)
Vector3 capsuleColliderCenterInWorldSpace = stateMachine.Player.ColliderUtility.CapsuleColliderData.Collider.bounds.center;
//중앙이 아닌 캡슐 바닥에서 광선 발사(바닥 구하려면 중심 구해서 높이 절반 추가해서 빼야함)
Ray downsRayFromCapsuleBottom = new Ray(capsuleColliderCenterInWorldSpace - stateMachine.Player.ColliderUtility.CapsuleColliderData.ColliderVerticalExtents, Vector3.down);
if (!Physics.Raycast(downsRayFromCapsuleBottom, out _, movementData.GroundToFallRayDistance, stateMachine.Player.LayerData.GroundLayer, QueryTriggerInteraction.Ignore)) //Ground 찾지 못했다면
{
OnFall(); //미세한 접지를 만날경우 계속 Fall하거나 사이에 껴버리므로 Ray뿐아니라 Box도 캐스팅 해야함.
}
}
protected virtual void OnFall()
{
stateMachine.ChangeState(stateMachine.FallingState);
}
보통 out RaycastHit, out hit 를 쓰는데 '_'를 사용해서 아무것도 인식 못하게했습니다.
'C#.' 카테고리의 다른 글
| C# 람다 (0) | 2023.11.15 |
|---|---|
| 인프런 c# 배열 연습 (0) | 2023.11.12 |
| 이것이 C#이다 10장) 배열 Array [2] (0) | 2023.09.04 |
| 이것이 C# 이다 10장) 배열 Array [1] (0) | 2023.08.31 |
| 이것이 C#이다 9장 ) 인터페이스와 추상클래스의 프로퍼티 (feat:무명형식) (0) | 2023.08.31 |