티스토리 뷰
오늘 한 작업
- 몬스터 관련 코드 정리
- 체력바 및 데미지 표기 추가
- 스킬 모듈화 추가 정리
코드
스킬 모듈화 추가 정리
더보기
부모 클래스(코루틴 함수 이쪽으로 이동)
public class Active_Base : ScriptableObject
{
public GameObject Atk_Obj;
public int[] Damage = new int[5]; // 스킬의 기본 공격력.
public float Size;
public float Velocity;
public float Point_Time; // -1: 기본 공격
public int Point_Amount; // -1: 기본 공격
public int Max_Count;
public float Count_Term;
public float Rotate_Count;
public float Distance;
public float Angle_Term;
public int Branch; // 공격 개수. 정확히는 '원점(ex. 캐릭터) 기준으로 360도를 n등분하여 형성되는 공격의 개수'다.
public int Way; // 공격 개수. 정확히는 '부채꼴로 발사되는 공격의 갯수'다.
public int Refeat; // 공격 개수. 정확히는 '일렬로 순차 발사되는 공격의 갯수'다.
public int Line; // 공격 개수. 정확히는 '일렬로 나열되는 공격의 갯수'이다. 투사체는 속도 변화로 제작된다.
public virtual void Create_Obj(Vector3 _Position, float _rotation, bool _Friendly, float _Atk_Mul)
{
}
public virtual IEnumerator Use_Active(GameObject Unit, float _rotation, bool _Friendly, float _Atk_Mul)
{
for (int i = 0; i < Max_Count; i++)
{
for (int j = 0; j < Refeat; j++)
{
for (int k = 0; k < Branch; k++)
{
for (int l = 0; l < Line; l++)
{
for (int n = 0; n < Way; n++)
{
float Skill_Rotation = _rotation + (i * Rotate_Count) + (Angle_Term * (((Way - 1) / 2) - n)) + (360 / Branch * k);
Vector3 Skill_Position = Unit.transform.position + (Quaternion.Euler(0.0f, 0.0f, Skill_Rotation) * Vector3.right * l * Size);
Create_Obj(Skill_Position, Skill_Rotation, _Friendly, _Atk_Mul);
}
}
}
yield return new WaitForSeconds(0.01f);
}
yield return new WaitForSeconds(Count_Term);
}
}
}
적 관련 코드(추가분만 기재)
더보기
public List<Active_Cell> Active_Array = new List<Active_Cell>();
public virtual void Patton(float Angle, float Distance)
{
if (Distance < 1.0f)
{
if (timer >= refeat)
{
StartCoroutine(Active_Array[0].Active.Use_Active(gameObject, Angle, false, Atk / 100.0f));
timer = 0.0f;
}
else
timer += Time.deltaTime;
}
else
timer = Mathf.Max(timer - Time.deltaTime, 0.0f);
}
public virtual void Move_Chara(float Degree, float Distance)
{
transform.position += Quaternion.Euler(0.0f, 0.0f, Degree) * Vector3.right * velocity;
}
※ 적 체력바 및 데미지 표기 추가는 간단한 코드 몇줄 추가한 것이라 따로 기재하지 않습니다.
결과물(영상)
※ 현재 일반 몬스터의 패턴이 매우 높은 확률로 발생하지 않는 문제가 발생하고 있습니다.
┗ 아주 가끔씩 정상 작동 하는 것을 보면 기능 활용을 잘못해서 오류가 난 거 같습니다.
┗ 정황상 코루틴을 너무 남용해서 그런 듯 합니다. 개인적으로 수정할 예정입니다.
┗ 확인 결과, 생성 알고리즘에 문제가 있어 Z좌표가 어그러져서 발생한 사항이었습니다.
┗ 원래는 임시로 처리해 놓고 추후 진행할 내용이었어서 발생한 문제였습니다.
┗ 관련 항목은 다음 TIL에서 서술할 예정입니다.
'스파르타 내일배움캠프 > Today I Learned' 카테고리의 다른 글
(사전 캠프) Day 19 [실전 제작: 멍뭉이! 멍멍뭉!] (2) | 2024.09.06 |
---|---|
(사전 캠프) Day 18 [실전 제작: 멍뭉이! 멍멍뭉!] (0) | 2024.09.05 |
(사전 캠프) Day 16 - 멍뭉이! 멍멍뭉! ~ 귀신 잡는 개멍대! (4) | 2024.09.03 |
(사전캠프) Day 15 - 멍뭉이! 멍멍뭉! ~ 귀신 잡는 개멍대! (0) | 2024.09.02 |
(사전 캠프) Day 14 - 멍뭉이! 멍멍뭉! ~ 귀신 잡는 개멍대! (0) | 2024.08.30 |