240227 - 팀과제 2일차

유시아·2024년 2월 27일
1

자유주제_팀과제

목록 보기
1/1
post-thumbnail

반갑다.
오늘도 너덜너덜해진 하루...
오늘은 어제 못다한 팀과제 중점적으로 요약.

팀과제

필수 구현 사항

  1. 주인공 캐릭터의 이동 및 기본 동작
  2. 레벨 디자인 및 적절한 게임 오브젝트 배치
  3. 충돌 처리 및 피해량 계산
  4. UI/UX 요소
  5. 추가 구현 사항 중 선택하여 3가지 이상 구현

추가 구현 사항

  1. 다양한 적 캐릭터와 그들의 행동 패턴 추가
  2. 다양한 무기나 아이템 추가
  3. 다양한 환경과 배경 설정
  4. 다양한 어려움 모드 또는 난이도 설정
    등등등..

이번 팀과제는 자유주제다. 개인과제로 낸 자유주제가 떡밥인 것처럼...^-^...

스크럼

이러고 있는동안 팀과제 스크럼은 벌써 6회차가 진행됐다.


물론 어제 말한 것처럼 내 개인과제를 디벨롭 하기로 했다.
장르는 메탈슬러그형식의 런앤건으로 변경.

그래서 이제.. 내가 맡은 파트는 플레이어니까? 그럴싸하게 구현했던 플레이어 스크립트를 새로 뜯어서 다시 만들어보기로 했다.


근접공격으로 하려고 했는데 메탈슬러그니까 아무래도 여우에게 총을 쥐여줘야 할 것 같아서.. 투사체부터 구현해보기로 했다.

↓↓PlayerAttack.cs

if (curtime <= 0)
{
    if (Input.GetKey(KeyCode.Q))
    {
        Instantiate(bullet, pos.position, transform.rotation);

    }
    curtime = cooltime;
}
curtime -= Time.deltaTime;

공격 스크립트. 플레이어가 Q를 누르면 투사체(Bullet)이 나간다.
계속 나가면 안되니까 쿨타임을 2정도로 걸어줬다.

↓↓Bullet.cs

RaycastHit2D ray = Physics2D.Raycast(transform.position, transform.right, distance, isLayer); // (시작점, 방향, 길이, 레이어선택)
if(ray.collider != null)
{
    if (ray.collider.tag == "Enemy") {
        Debug.Log("명중");
    }
    DestroyBullet();
}

if(transform.rotation.y == 0) {
    transform.Translate(transform.right * speed * Time.deltaTime);
}
else
{
    transform.Translate(transform.right * -1 * speed * Time.deltaTime);
}

저번에 배운 Raycast를 썼다!
불릿은 발판과 적을 감지해서 닿았을 때 destroy하도록 한다.
닿지 않고 죽 허공으로 나아갈때는 시간이 지나면 파괴되도록 Invoke함수로 딜레이를 줬다.

이제 대충.. 공격을 구현했으니.. 애니메이션을...만져야하는데.....벌써부터 우울하내....
아자아자...화이팅...

profile
패션컴공탈출기

0개의 댓글