본문 바로가기
디지털노마드

[챗GPT게임개발32] GPT-4, GPT-4o 활용해서 텔리포트 기능 구현하기

by 인텔리노마드라이프 2024. 5. 22.
728x90

안녕하세요. 인텔리원스튜디오(IntelliOneStudio)입니다.

오늘은 GPT-4, GPT-4o 활용해서 텔리포트 기능을 구현해볼까해요.

[오늘의 목표] GPT-4, GPT-4o 활용해서 텔리포트 기능 구현하기
1. 텔리포트 스크립트 구현
2.실행하고 확인하기

 

 ChatGPT 답변 내용 중 제가 별도로 표시한 파란색 내용을 기준으로 읽으시면 좀 더 이해가 쉽게 될거예요.

텔리포트 구현을 위해 트리거 스크립트 활용

플레이어가 텔리포트 위치에 왔을 때 원하는 곳으로 이동하기 위해 아래 트리거 스크립트를 이용할거예요.

트리거 스크립트는 아래 기사를 참고하면 되요.

2024.05.09 - [디지털노마드] - [챗GPT게임개발18] ChatGPT를 활용하여 트리거와 이벤트 시스템을 활용

 

[챗GPT게임개발18] ChatGPT를 활용하여 트리거와 이벤트 시스템을 활용

안녕하세요. 인텔리원스튜디오(IntelliOneStudio)입니다.오늘은 ChatGPT를 활용하여 Unity 플랫포머 게임에서 트리거와 이벤트 시스템을 활용해봐요. [오늘의 목표]1. 트리거 관련 소스 코드를 살펴보

intellinomadlife.tistory.com

 

텔리포트 위치는 PlatformerModel 클래스에서 관리

PlatformModel 클래스는 게임 데이터를 관리하는 클래스예요.

그래서 이 클래스에 텔리포트 위치 변수를 추가하는 게 좋아요.

PlatformerModel 클래스에 텔레포트되는 위치를 저장하는 것이 좋습니다. 이렇게 하면 게임 데이터와 관련된 모든 정보를 한 곳에서 관리할 수 있어 코드가 더 깔끔해지고 유지보수가 용이해집니다.
using Platformer.Mechanics;
using UnityEngine;

namespace Platformer.Model
{
    [System.Serializable]
    public class PlatformerModel
    {
        public Cinemachine.CinemachineVirtualCamera virtualCamera;
        public PlayerController player;
        public Transform spawnPoint;
        public float jumpModifier = 1.5f;
        public float jumpDeceleration = 0.5f;

        // 텔레포트 위치 추가
        public Vector3 teleportPosition;
    }
}

 

PlayerController 클래스에 텔리포트 함수를 추가

플레이어가 텔리포트 위치에 닿으면 위치 이동할 수 있도록 함수를 생성해요.

PlayerController 클래스에서 PlatformerModel에 있는 텔레포트 위치 변수를 사용하도록 수정합니다.
public void TeleportAndMoveCamera()
{
    // 플레이어 위치 업데이트
    transform.position = model.teleportPosition;
    Debug.Log("Teleported to: " + model.teleportPosition);

    // 카메라가 새 위치를 추적하도록 업데이트
    if (model != null && model.virtualCamera != null)
    {
        model.virtualCamera.m_Follow = transform;
        model.virtualCamera.m_LookAt = transform;
        Debug.Log("Camera moved to follow the player.");
    }
    else
    {
        Debug.LogWarning("Virtual camera not assigned.");
    }
}

Unity Editor에서 설정하기

이제 만들어진 스크립트를 아래와 같이 적용해봐요.

Unity Editor에서 SimpleTrigger의 onTriggerEnter 이벤트를 설정할 때, 플레이어의 teleportPosition을 설정하고 TeleportAndMoveCamera 메서드를 호출하도록 설정합니다.

- 트리거 오브젝트의 SimpleTrigger 컴포넌트의 onTriggerEnter 이벤트에 플레이어 오브젝트를 드래그하여 할당합니다.
- 드롭다운 메뉴에서 PlayerController -> TeleportAndMoveCamera를 선택합니다.
- teleportPosition은 코드 내에서 설정하거나 다른 방법으로 설정할 수 있습니다. 예를 들어, SimpleTrigger의 teleportDestination을 사용하여 설정할 수 있습니다.

이제 플레이어가 특정 지점에 도달하면 teleportPosition으로 텔레포트되고, 카메라도 함께 이동합니다.

 

실행하고 확인해보기

모든 변경 사항을 저장하고 실행하면 되요.

아래 영상과 플레이어가 외계인을 만나면 특정 지역으로 위치를 이동해요 

 

 

오늘은 GPT-4, GPT-4o 활용해서 텔리포트 기능을 구현해봤어요. 

 

지금까지,

언제나 성장하는 인텔리원스튜디오(IntelliOneStudio)입니다.

감사합니다.

728x90