[클론코딩_유니티_골드메탈] 뱀서라이크 따라만들기 5 (몬스터🧟만들기)

2023. 4. 7. 01:30·게임개발/언데드서바이벌_골드메탈_클론코딩

https://www.youtube.com/watch?v=0aUCu1BcZxs&list=PLO-mt5Iu5TeZF8xMHqtT_DhAPKmjF6i3x&index=7 


 
1. 오브젝트 만들기
몬스터 오브젝트의 Run0을 하이어라이키에 드래그 드랍, Shadow 적용
Animator 추가후 할당(Animation 폴더)
Rigidbody2D 컴포넌트 추가 및 중력(Gravity scale=0)과 회전 제거(Freeze Rotation z) //플레이어도
Capsule Collider 2D 추가 (0.7,0.9)
Sprite Renderer 설정 복사를 통해 Enemy1 도 생성


2. 플레이어 추적 로직
Enemy 스크립트 생성

    public float speed;
    public Rigidbody2D target;

    bool isLive = true;

    Rigidbody2D rigid;
    SpriteRenderer spriter;

- 속도, 목표, 생존여부를 위한 변수 선언
- target : 쫒아갈 target 선언 (유니티 인스펙터에서 할당)
- Rigidbody2D와 SpriteRenderer(플립을 위해) 선언
 
Awake에서 초기화 진행
 
로직에 필요한 변수 선언

    private void FixedUpdate()
    {
        Vector2 dirVec = target.position - rigid.position;
        Vector2 nextVec = dirVec.normalized * speed * Time.fixedDeltaTime;
    }

- 위치 차이 = 타겟 위치 - 나의 위치
- 방향 = 위치 차이의 정규화(Nomaliaed)
 
따라가는 로직

    private void FixedUpdate()
    {
        rigid.MovePosition(rigid.position + nextVec);
        rigid.velocity = Vector2.zero;
    }

- 순간이동식 이동 방법
- 물리 속도가 이동에 영향을 주지 않도록 속도 제거
- velocity를 0으로 만들어 줘야 충돌시 영향을 주지 않는다.
 
몬스터 오브젝트들에게 작성한 Enemy 스크립트 추가하기
target에 Player 오브젝트 끌어넣기
Speed 변수 설정(2.5)
 
몬스터 스프라이터의 방향 바꾸기(filpX)

    private void LateUpdate()
    {
        spriter.flipX = target.position.x < rigid.position.x;
    }

 
isLive 변수를 통해 죽었으면 비활성화

    private void FixedUpdate()
    {
        if (!isLive)
            return;
		...
    }

    private void LateUpdate()
    {
        if (!isLive)
            return;
        ...
    }

- 단, 테스트 상태이므로 선언시 true로 선언하고 할 것


3. 몬스터 재배치
플레이어 속도가 빠르기 때문에 일정한 방향으로 갈경우 무한히 만나지 못하는 문제가 발생
Reposition의 Enemy 부분을 작성
이때 Enemy가 죽었는지 살았는지 구분이 필요함
 
Collider2D 변수 생성 및 초기화

    Collider2D coll;
    private void Awake()
    {
        coll = GetComponent<Collider2D>();
    }

- Collider2D는 기본 도형의 모든 콜라이더2D를 포함
 
콜라이더가 활성화 상태이면 이동시키는 로직

case "Enemy":
    if (coll.enabled)
    {
        transform.Translate(playerDir * 20 + 
        new Vector3(Random.Range(-3f, -3f), Random.Range(-3f, -3f), 0f));
    }
    break;

- transform.Translate를 통해 위치를 "플레이어 보는 방향 * 20 + (-3~3,-3~3,0)" 으로 바꾼다.
 
새로운 Tag인  Enemy를 만들고 몬스터 오브젝트 Tag를 Enemy로 바꾼다.


깃허브 올리기
Commit : ver 1.5
Description : Unrimited map
 
https://github.com/mekain80/CloneCode_Undead_Survivor

GitHub - mekain80/CloneCode_Undead_Survivor: https://www.youtube.com/watch?v=MmW166cHj54&list=PLO-mt5Iu5TeZF8xMHqtT_DhAPKmjF6i3x

https://www.youtube.com/watch?v=MmW166cHj54&list=PLO-mt5Iu5TeZF8xMHqtT_DhAPKmjF6i3x&index=1 - GitHub - mekain80/CloneCode_Undead_Survivor: https://www.youtube.com/watch?v=MmW166cHj54&li...

github.com

 

'게임개발 > 언데드서바이벌_골드메탈_클론코딩' 카테고리의 다른 글

[클론코딩_유니티_골드메탈] 뱀서라이크 따라만들기 6+ (소환 레벨⏳적용하기)  (0) 2023.04.09
[클론코딩_유니티_골드메탈] 뱀서라이크 따라만들기 6 (오브젝트 풀링🏊으로 소환하기)  (0) 2023.04.09
[클론코딩_유니티_골드메탈] 뱀서라이크 따라만들기 3 (2D 셀 애니메이션🏃제작하기)  (0) 2023.04.06
[클론코딩_유니티_골드메탈] 뱀서라이크 따라만들기 2+ (새로운 인풋시스템 적용하기, Input Manager )  (0) 2023.04.06
[클론코딩_유니티_골드메탈] 뱀서라이크 따라만들기 2  (0) 2023.04.05
'게임개발/언데드서바이벌_골드메탈_클론코딩' 카테고리의 다른 글
  • [클론코딩_유니티_골드메탈] 뱀서라이크 따라만들기 6+ (소환 레벨⏳적용하기)
  • [클론코딩_유니티_골드메탈] 뱀서라이크 따라만들기 6 (오브젝트 풀링🏊으로 소환하기)
  • [클론코딩_유니티_골드메탈] 뱀서라이크 따라만들기 3 (2D 셀 애니메이션🏃제작하기)
  • [클론코딩_유니티_골드메탈] 뱀서라이크 따라만들기 2+ (새로운 인풋시스템 적용하기, Input Manager )
메카인
메카인
  • 메카인
    메카인의 지식창고
    메카인
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 코딩 공부
        • TIL(Today I Learn)
        • TIL
        • 백준(C++)
        • Python
        • 알고리즘
        • 프로젝트 회고
      • C++
        • C++
        • C++ STL
        • C,C++ mCoding yotube
      • 게임개발
        • 언데드서바이벌_골드메탈_클론코딩
        • 3D_골드메탈_클론코딩
        • 유니티_문제해결
        • 게임 수학
      • Unreal 공부
        • UE5 GameDev
        • Unreal Engine 4 C++ The Ult..
      • 교재 문제 풀이
        • 운영체제
      • 정보처리기사
        • 정처기 요약
        • 정처기 오답노트
      • 학교수업
        • 데이터베이스
        • 프로그래밍 언어론
        • 리눅스 시스템
        • 네트워크
      • 일상
        • 주식
        • 독서
        • 일기
      • (비공개 전용)
        • memory
        • Build
        • OOP
        • Smart Pointer
        • lamda
        • 게임 수학
        • 모던 C++
        • 모던 C++ STL
        • 모던 C++ Concurrency, Paralle..
        • 책
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • 글쓰기
    • 블로그 관리
  • 링크

  • 공지사항

    • 공지사항 - 인생과 블로그의 목표
  • 인기 글

  • 태그

    ~
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
메카인
[클론코딩_유니티_골드메탈] 뱀서라이크 따라만들기 5 (몬스터🧟만들기)
상단으로

티스토리툴바