전체 글 54

[Retro유니티] UI 슬라이더 사용을 통한 체력바 구현 & PlayerHealth.cs

체력을 표시할 원형 UI를 만들 것이다. UGUI 캔버스는 게임화면을 기준으로 UI를 배치한다. 체력슬라이더는 3D공간에서 캐릭터를 따라다녀야 한다. Canvas 컴포넌트의 Render Mode를 World Space으로 변경한다. 이 경우, 캔버스와 그 위의 UI 게임 오브젝트들은 3D 게임월드에 배치된다. 즉, 게임월드상에서의 위치/회전/크기를 가지게 된다. Reference Pixel per Unit 은, UI 스프라이트의 픽셀크기와 게임 월드의 유닛크기가 대응되는 비율을 결정한다. 100이라면 100유닛이 1픽셀이므로 뿌옇고, 1이면 깔끔하게 보인다. 캔버스 위치와 크기 설정캔버스가 캐릭터 발밑에 배치된 것을 확인할수있다. tip) Hierarchy 에서 Alt + 클릭으로 화살표를 누르면, Ca..

[Retro유니티] 다형성 및 Action, Delegate를 통한 Event 구현: Virtual/Abstract/Interface 차이

다형성적 AI 및 Player 모두 포함하여 공유하는 기능을 가진, LivingEntity 클래스를 만들자.느슨한 커플링을 사용해서, 어느 자식클래스인지 구체적으로 모르더라도, 부모가 가진 메서드면 호출하게끔 구현할 수 있다. 다형성 사용 패턴- C#에서 부모클래스의 함수는 base로 접근할 수 있다. 이 정도만 추가로 숙지하면 될듯하다. LivingEntity ClassMonoBehaviour 및 IDamageable을 상속체력체력회복공격당할수있음살거나 죽는 상태가 존재함.using System;using UnityEngine;// 생명체로서 동작할 게임 오브젝트들을 위한 뼈대를 제공// 체력, 데미지 받아들이기, 사망 기능, 사망 이벤트를 제공public class LivingEntity : Mono..

[Retro유니티] Shooter 구현 - IK를 사용한 손/발 위치와 총 위치 <-> Animation 대응

PlayerShooter 스크립트를 만들자.1. 입력에 따라 총을 쏘거나 재장전한다.2. 손은 항상 총의 손잡이에 위치하게 한다. -> IK를 사용해야 한다. IK란?먼저 FK를 알아야 한다.FK란?Forward Kinematics 의 줄임말이다.부모 joint에서 자식 joint 순서로 움직임을 적용한다.FK로 물건을 집으면1. 어깨를 움직인다2. 팔을 움직인다3. 손을 움직인다. 순으로 동작한다.FK로 물건을 집는다면, 손의 위치는 누적계산된 최종결과이기 때문에, 손의 위치를 먼저 정하고 거기에 맞춰서 애니메이션을 변형할 수 없기 때문에, 손의 위치로 물건을 순간이동해야 한다. 반대로, IK는 자식 joint 에서 부모 joint 순서로 움직임을 적용하는 것이다. Inverse Kinematics1...