DevCamp 회고 - 4

이준호·2024년 4월 1일
0
post-custom-banner

📌 DevCamp KPT 회고



📌 1 주차 정리

➔ Ability Function

  • 기존 스탯, 각성을 기반으로 어빌리티 작성

  • 어빌리티 업그레이드를 위한 랭크 랜덤 확률

  • 어빌리티 효과 랜덤 값

  • 랭크와 확률에 대한 SO 작성

  • UI Prefab에 Abiliity 연결

  • Setting Value :: Ability Cost, Ability UpgradeInfo 부분 분리

  • 어빌리티 기능 데이터 Scriptable Object -> CSV 변경

  • // 수정 필요 => 어빌리티 스톤 부족시 문구, 껏다 키면 부족 재화 빨간색 안뜸






➔ Single Quest Auto-Boss Challenge

  • 단일(메인) 퀘스트 추가. (보스 자동 도전 1회)

  • 퀘스트 CSV 파일 불러오기 후 버튼 클릭시 적용

  • QuestManager에서 테스트용 퀘스트 id에 스트링값으로 변경 가능.

  • // 수정 필요 :: StageManager 에서 보스 클리어 메서드 부분 Invoke 수정 필요.






➔ Auto-Summon

  • 자동 소환 (등급 업 효과중 && 등급 업 후 다음 소환 진행)

  • 자동 소환 중에는 소환하기 및 나가기 버튼 비활성화 유지






➔ Active Uniqe Skill

  • 프리팹 (스프라이트 & 애니메이션) 설정

  • SkillManager 프리팹 정보 등록 (프리팹, SO, 아이콘, CSV)

  • CSV 시트에 스킬 추가

  • 스킬의 회전을 Acos과 내적을 이용한 계산을 통해 적용.

// 타겟의 위치로 회전 (Target Transform, gameObject Transform)
// 부모가 피격지점이 되야함.
// 벡터의 내적 -> -> = 1, -> <- = -1 / 0도 = 1, 90도 = 0, 180도 = -1
// 즉, 타겟이 플레이어를 바라보는 방향과 플레이어에서 타겟을 바라보는 방향의 내적이 -1을 이뤄야함.
// 플레이어 -> 타겟, 타겟 -> 플레이어 의 벡터
// float Dot = Vector3 Dot(A, B); , float Angle = Mathf.Acos(Dot); => 두 벡터 사이의 각도 (라디안)
// :: 내적으로 구하기에 나오는 각도는 0 ~ 180도, 그 이상 각도를 구하기 위해서는 x가 0보다 크면 360을 빼줘야함.
Vector3 directionToPlayer = (gameObject.transform.position - targetTransform.position).normalized;
Vector3 playerTransformDown = transform.up * -1;

if (Vector3.Dot(playerTransformDown, directionToPlayer) > -1)
{
	//var directionToTarget = (targetTransform.position - gameObject.transform.position).normalized;
	float angle = Mathf.Acos(Vector2.Dot(Vector2.up, directionToPlayer)) * Mathf.Rad2Deg;
	if (directionToPlayer.x < 0)
		angle = 360 - angle;
	Quaternion lookRotation = Quaternion.AngleAxis(angle, Vector3.forward);
	gameObject.transform.rotation = lookRotation;
}











📌 2 주차 할 목록

  • 어빌리티 던전 추가

  • 전투 시스템 재구성

profile
No Easy Day
post-custom-banner

0개의 댓글