새소식

C#,Unity Programming

게임개발 학습 시작. 개발환경 세팅

  • -
728x90

 

// 게임개발 종합반 - 1주차

// 빗물받는 르탄이 제작

씬 구성

  • 강사님은 프로젝트 창을 1 column layout을 쓰신다. 나는 익숙한대로 2column..
  • Scene : 실제 게임의 구성요소를 보는 곳. 실질적인 게임 개발 씬
  • Game : 게임이 실제로 보여지는 곳. play 버튼 클릭 후 볼 수 있음
  • Hierachy : 게임 내 구성요소를 볼 수 있는 곳. 개발 시 자주 필요
  • Project : 이 프로젝트에 포함된 파일들을 모아볼 수 있는 곳
  • Inspector : 클릭한 요소의 속성과 정보를 보여주는 곳

배경 세팅

  • Aspect ->  phone 760:1280
  • 2d 배경은 2d object - sprite - square
  • Scale - x: 6, y: 10 (760/1280 전체화면)

UI box 세팅

  • 역할 - 점수판, DestroyZone
  • order in layer "1"로 설정(background가 0이므로)

캐릭터 세팅

  • Square 생성 후 Sprite에 이미지 할당

캐릭터 애니메이션 추가

  • 애니메이션 에셋 생성 후 loop으로 설정
  • rtan sprite에 rtan_run 을 컴포넌트 추가
    • 추가 후 Controller가 생김
  • 시간에 따라 반복동작하는 애니메이션은 Script없이 제작
    • 애니메이션 창에서 두 이미지를 키프레임으로 할당

Visual Studio 세팅

  • 윈) Edit → Preferences → External Tools → Visual Studio Community 2019로 맞추기
    • 이거 세팅 안해두면 Visual studio에서 유니티 자동완성이 안뜸
  • 맥) Unity → Preferences → External Tools → Visual Studio for mac

기본적인 스크립트 구성

  • start(태어날때 한 번 실행)
  • update(매 순간(프레임) 실행)
  • 르탄이 우측으로 이동시키기
void Update()
{
	transform.position += Vector3.(0.05f, 0, 0);
}
  • 변수 선언 하기(float 형식으로)
public class rtan : MonoBehaviour
{
    // 르탄이 이동 방향 변수
    float dir = 0.05f;
    // Start is called before the first frame update
    void Start()
    {
        
    }

    // Update is called once per frame
    void Update()
    {
        // 위치를 Vector3 방향으로 계속 더하기
        transform.position += new Vector3(dir, 0, 0);
    }
}
  • 캐릭터가 벽에 닿으면 방향을 전환하기(if 활용)
    • Debug.Log(transform.position.x);
    • 콘솔에 x값 로그 남기기
    • 강사님은 dir 를 수치로 변경하셨으나, 나중에 dir수정시 편의성을 위해 dir = -dir로 변경
public class rtan : MonoBehaviour
{
    // 르탄이 이동 방향 변수
    public float dir = 0.05f;
    // Start is called before the first frame update
    void Start()
    {
        
    }

    // Update is called once per frame
    void Update()
    {
        if (transform.position.x > 2.8f)
        {
            dir = -dir;
        }

        if (transform.position.x < -2.8f)
        {
            dir = -dir;
        }
        // 위치를 Vector3 방향으로 계속 더하기
        transform.position += new Vector3(dir, 0, 0);

        // 콘솔에 x값 로그 남기기
        Debug.Log(transform.position.x);
    }
}

르탄이 좌우반전

  • transform.localScale 로 방향 전환
    • transform.localScale = new Vector3(-1, 1, 1);
 void Update()
    {
        if (transform.position.x > 2.8f)
        {
            dir *= -1;
            toward *= -1;
        }

        if (transform.position.x < -2.8f)
        {
            dir *= -1;
            toward *= -1;
        }
        // 위치를 Vector3 방향으로 계속 더하기
        transform.position += new Vector3(dir, 0, 0);
        transform.localScale = new Vector3(toward, 1, 1);
    }

클릭시 방향전환

if (Input.GetMouseButtonDown(0))
        {
            toward *= -1;
            dir *= -1;
        }

 

와 여기서 더 못듣는다..

내일배움카드는 하루 8차시만 들을 수 있다더니 8시간이 아니었구나..

 

Contents
  • -

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.