
Project. DayLightmember1<빌드 이슈 수정>
1. 맵뚫 버그 → physics - Layer Collision Matrix 설정(주말 이후 강사 피드백)
member2<빌드 이슈 수정>
1. 빌드 파일에서 외곽선 출력이 안되는 현상
2. 아이템 공격시 퀵슬롯 전환 불가능하도록 막기
<기능 구현>
1. 아이템 식별 도중 피격 시, 식별 초기화
2. 사다리 튜토리얼 이후 자경단 방향 카메라 컷씬 추가 → 컷씬(시네마틱)
3. URP 효과(volume) => 밤에는 가시거리가 좁아지고 안개가 깔린 듯한 음산한 느낌
member3<빌드 이슈 수정>
1. 총, 방패 생성 위치, 방향 조정
<기능 구현>
1. 투척 아이템 : 마우스 클릭한 시간에 따라 비거리 달라지도록 구현
2. 방패 아이템 : 기능 구현, 피격될 때마다 내구도 차감
3. 투척 아이템 : 화염병
4. R키로 총 재장전 기능 구현
member4<빌드 이슈 수정>
1. 몬스터 빌드 버그 수정
2. 몬스터 프리팹 생성, 기획분들께 전달(배치 안내사항)
<기능 구현>
1. 원거리 좀비 구현
2. 기획 초안 24p~30p 확인, 기획안 구현
3. 몬스터 파라미터 적용
4. 몬스터 탐지(시각, 청각)
...
member5<빌드 이슈 수정>
1. 제작 탭에서 특정 레시피 클릭시 결과 아이템 설명 텍스트 아래에 출력
<기능 구현>
1. 랜덤 드랍 테이블 연동, 테스트 (CSV 파일)
2. 달리기 초당 5% 스태미나 소모, 기본 초당 7% 회복, 공격시 3% 소모, 점프 스태미나 소모
3. 병합, 빌드2 파일 생성, 공유
이번에 공유하려는 코드는 플레이어의 공격 속도와 공격 모션 속도, 쿨타임을 연동하는 코드이다. 특정 애니메이션 클립의 재생 속도를 변환하는 상황이 꽤나 자주 나오게 될텐데 다음 코드를 참고하면 좋을 것 같다.
이때 중요한 것은 인스펙터 상에서 clip의 SpeedMultiplier값을 설정하여 재생 속도를 런타임 중에 변경할 수 있는데, SpeedMultiplier는 애니메이터의 파라미터의 값으로 설정이 가능하기 때문에 float 파라미터 하나(ClipSpeed)를 설정해주었다.
public class PlayerAttack : MonoBehaviour
{
[Header("Reference")]
[SerializeField] private Animator _animator;
[SerializeField] private AnimationClip _attackClip;
// 중복 공격 방지 플래그
private bool _canAttack = true;
private IEnumerator MeleeAttackSequence()
{
_canAttack = false;
// 공격 속도 캐싱
float AtkSpeed = _playerProperty.AtkSpeed.Value;
// 공격 모션 속도 : 플레이어 공격 속도 비례 설정
// float 파라미터 값 설정 -> SpeedMultiplier에 적용
_animator.SetFloat("ClipSpeed", AtkSpeed);
// 공격 모션 재생
_animator.SetTrigger("Attack");
// 공격 모션 기본 재생 시간
float clipLength = _attackClip.length;
// 플레이어 공격 속도에 반비례하는 쿨타임 값 설정
float coolTime = 1 / AtkSpeed;
// 공격과 공격 사이 딜레이 설정
// 실제 모션 재생 시간 + 공격 쿨타임
float delay = clipLength / AtkSpeed + coolTime
// 해당 시간이 지나야 다시 공격 가능
yield return new WaitForSeconds(delay);
_canAttack = true;
}
}