// 게임개발 종합반 - 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 을 컴포넌트 추가
- 시간에 따라 반복동작하는 애니메이션은 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);
}
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시간이 아니었구나..