승쨩개발공부
[Unity] 골드메탈 플렛포머(Player)분석 본문
맴버변수,Awake함수 구문
AudioClip은 UnityEngine에 들어있어서 따로 추가안해줘도되었다.
추가한 컴포넌트들은 Awake초기화부문에서 초기화해준다.
Update구문
Unity ProjectManager에 있는 Input에 Horizontal과 Jump가 각각 키입력이 자동으로 되어있다
Horizontal = 키보드 방향키 오른쪽,왼쪽
Jump = 스페이스바
jump
스페아스바를 누르거나 에니메이터에넣어준 paramaters값 IsJumping이 아닐떄 점프를 한다
업벡터에 맴버변수로 정해준 점프파워를 곱한다, 그리고 impulse를 해줘서 누가 밀듯이 순간적인 속도를 준다.
stopspeed
좌우 키를 때면 rigid의 속도는 x좌표값만 단위백터로 가져와 0.5를 곱해줘 마찰력을 준다.
direction sprite
-1 0 1로 표현하는 GetAxisRaw로 filp해준다
walk Animation
rigid의 x축 속도의 절대값이 0.5보다 작다면
파라메터를 false해줘서 walk에니메이션을 idle로바꾼다.
FixedUpdate구문
MoveSpeed
-1, 0, 1 을 가져와 right백터에 곱해줘서 좌,우를 판단한다
right max spped
maxspeed가 rigid.x의 속도보다 작다면 rigid속도에 maxspeed를 넣느다
left max speed
right와 같지만 좌쪽으로 간다면 음수이니 -1를 곱해줌
lading platform
Ray를 그린다 현재 rigid의 포지션에 아래백터로 색깔은 녹색 rgb
ray가 platform 레이어의 맞았으면, ray와 platform사이가 0.5보다 작다면 jump애니메이션을 중지.
OnCollisonEnter2D구문
Enemy 태그와 충돌하면
Attack
밟았을떄만 떄리기위해
y축 속도가 0보다 작거나, 콜라이더에 y축이 현재 오브잭트에 y축보다 작다면
때리고 사운드재생
Damaged
아니면 맞고 데미지를 입는다.
OnTriggerEnter2D
아이템 객체에 Trigger를 On해줘야됨.
item태그와 충돌하면
점수얻고 삭제하고 사운드재생
finish태그와 충돌하면
다음스테이지 이동하고 사운드재생
OnDamaged구문
인자로 타겟의 위치를 받는다 vector2니 x,y축
맞았을떄 2초의 무적을 주기위해 PlayerDamaged라는 레이어를 새로 만들어서
Enemy와 충돌 안되게 했다 = Player의 레이어는 두개 Player,PlayerDamaged
맞았을떄 알파값을 조절해 살짝 투명하게 만든다.
맞았을떄 튕기는 느낌을 주기위해 위치값에 타겟의 x축을 가져와 비교하며 튕긴다
에니메이션을 재생하고
2초뒤 invoke함수로 OffDamaged함수를 호출
나머지구문
OffDamage
레이러를 플레이어 레이어로 변경해서 다시 충돌가능하게 만듦
알파값도 원래대로
OnAttack
몬스터의 위치를 인자로받음
점수를 얻고
up백터에 5를곱해 튕기게만듦
몬스터의 데미지 함수를 호출
Ondie
알파값을 낮춰 투명하게만들고
y축을 flip해서 y축을 뒤집어줌
플랫폼과 충돌안되고 쭉 떨어지기위해 콜라이더를 끄고
업백터에 5를곱해 튀어올라 떨어지게만듦
그리고 사운드재생
VelocityZero
속도를 0으로 만듦
'C# > Unity' 카테고리의 다른 글
[Unity] 충돌여백 (0) | 2024.04.25 |
---|---|
[Unity] 폰트 (0) | 2024.04.11 |
[Unity] 이동관련 함수들 (0) | 2024.04.06 |
[Unity] 프레임워크 라이프 사이클 (0) | 2024.04.06 |
[Unity] 유니티 인터페이스 (0) | 2024.04.04 |