2024/08 14

240828(수) Unity 강의 [고양이 특성 주기]

3-4 특정위치에서 밥 쏘기밥(food)를 특정 위치(dog)에서 쏘고자 하면 아래와 같은 로직을 사용한다. void MakeFood(){ float x = transform.position.x; float y = transform.position.y; Instantiate(Food, new Vector2(x, y), Quaternion.identity); // Quaternion.identity는 별도의 회전값을 주지 않는다는 뜻}  3-4 마우스 위치를 월드상의 게임오브젝트로 변경private void Update(){ Vector2 mousePos = Camera.main.ScreenToWorldPoint(Input.mousePosition); // 스크린상의 떠돌아 다니..

개발일지 2024.08.28

240827(화) Unity 강의 [Start Scene에서 Main Scene 이동]

StartScene, MainScene기존 Main Scene만 있는것과 달리Start Scene을 추가하여 Start Scene 버튼을 누르면 Main Scene으로 이동하게 한다. 로직은 게임 종료시 restart 방식과 동일Public void StartGame(){ SceneManager.LoadScene("MainScene")}  단, 해당 로직이 작동하려면 Unity에서 제공하는 아래 기능을 먼저 사용해야 한다.using UnityEngine.SceneManagement; // SceneManager를 사용하기 위해 먼저 사용

개발일지 2024.08.27

240826(월) Unity 강의 [게임 종료 로직, 시간차, 최고점수 구현, Invoke]

2-9 게임 끝내기 - 게임 종료 로직 만들기게임이 종료된 후 게임 종료 로직을 만들고 버튼을 누르면 재시작하기 먼저 게임 종료에 관한 부분은 게임에 대한 전반적인 기능을 담당하는 부분이므로GameManager에서 담당한다. GameManager.cs에서 싱글톤화를 하여 외부에서 호출가능하도록 한다.public static GameManager Instance; private void Awake(){ if(Instance == null) { Instance = this; }} Instance == null, null은 비어있다라는 뜻으로 변수가 비어있을 경우 Instance = this를 한다는 의미이다. 게임 종료시 약간의 시간차 개선bool isPlay..

개발일지 2024.08.26

240823(금) Unity 강의[타이머, retry 버튼, 마우스 커서 이동]

타이머 기능float totalTime = 30.0f // 30초 타임 변수 선언void update{totalTime -= time.deltaTime // 시간을 빼서 넣어줌, deltatime은 모든 기기들이 같은 프레임을 갖게하는 특성있음} retry 버튼 클릭 시 시작화면 나오게 하기using UnityEngine.SceneManagement // 작성public void retry (){Scenemanager.LoadScene("MainScene")} 화면 마우스 위치가 이동하면 게임월드상 위치로 카메라 이동void update(){Vector2 mousePos = camera.main.screenToWorldPoint // mousePos = transform.position}

개발일지 2024.08.23

240821(수) Unity 강의 [캐릭터 움직이기]

캐릭터를 오른쪽으로 움직이기void update{transform.position += vector3.right } transform 컴포넌트의 position 값을 우측으로 이동시키는 로직이다. 프레임 동일하게 맞추기void start{application.targetframerate = 60;} 각 기기마다 성능이 다르므로 프레임도 다르다. 어플리케이션의 타겟할 프레임을 60이란 고정값으로 설정하여 모든 기기를 동일하게 설정한다는 뜻이다. 방향 좌우 반전캐릭터를 특정 위치에 도달할때마다 방향을 반전시키려면 이미지를 반전시키면 된다.SpriteRender의 flip x값을 체크하거나 해제하면 좌우반전, y는 상하반전이다. 그러나 SpriteRender의 flip값을 불러오려고 하면 오류가 발생하는데그..

개발일지 2024.08.21

240820(화) [함수]

함수 - return 특정 상황에 함수의 로직이 더이상 실행되지 않았으면 하는 경우 사용return 함수를 사용하면 해당 코드 밑에 사용된 로직은 동작하지 않는다.  함수 - return 과 반환 형식 함수 결과를 변수에 저장하려면 return 함수를 사용해야 한다.return 함수 뒤에 저장하고 싶은 값을 적는다.예) return 100; 예를 들어 보상으로 100포인트를 획득하는 함수를 작성하면void GetPoint(){Console.Writeline("보상으로 100포인트를 획득합니다.")return 100;} 단 void 함수를 사용할때는 return 부분에 오류가 뜨는데void 함수 특성(함수의 결과를 사용하지 않음) 때문이다. 따라서 void 함수를  return 함수에 사용된 자료형과 동일..

개발일지 2024.08.20

240819(월) [배열]

foreach(변수타입 반복변수 in 배열) { 실행 내용 } 설명: 조건식을 쓰지 않고 배열을 처음부터 끝까지 반복할 때 사용특징1) 반복 변수는 매 반복 배열의 다음값으로 변한다  0번째 반복시 game : League of Legends 1번째 반복시 game : "메이플 스토리" 2번째 반복시 game : 디아블로실행결과League of Legends메이플 스토리디아블로 2) 지정할 반복 변수 타입은 배열의 타입과 일치해야 한다.

개발일지 2024.08.19

240816(금) [제어문]

switch case 문switch ( 조건 변수){case 상수조건1 :실행내용break;case 상수조건2 :실행내용break;case 상수조건3 :실행내용 break;} 특징1) 변수 한가지를 가지고 그 변수가 무엇인지 확인하는 조건문이다2) 한가지 조건을 더 정교하게 체크 가능하다.  ·  case 조건 고정된 상수여야 한다.1, 2, 3등 고정 값x > 10등 변할 수 있는 값 Xint x 등 새로운 변수 X ·  case  에 들어가는 조건은 중복되면 안됨 FOR문 for ( 초기화 ; 조건 ; 변화 ) { 실행 내용 }어떤일을 반복할 때 쓰이는 기능 While문 while ( 조건 ) { 실행 내용 }FOR문과 다르게 조건만 체크되면 실행된다. do while문do { 실행 내용 } whil..

개발일지 2024.08.16

240816(금) [마인크래프트 월드 생성원리 초안]

1. 선택한 게임의 이름은 무엇인가요?Minecraft 2. 선택한 게임의 장르는 무엇인가요?오픈월드, 샌드박스, 어드벤처 3. 선택한 게임의 어떤 시스템에 집중하셨나요?마인크래프트 월드 생성 원리 4. 해당 시스템이 동작하는 구조의 시작부터 과정을 자세하게 분석, 나열해봅시다. 순서1. 마인크래프트 월드 생성시 스폰 청크(Spawn Chunk)를 생성한다.→ 청크는 16(가로)×16(세로)×256(높이) 블럭의 집합체로써 1청크당 65,536 블록으로 이루어져 있다. → 마인크래프트 월드를 생성하여 입장하면 플레이어 주변에 청크가 생성된다. → 플레이어가 이동 시 필요에 따라 또다른 청크를 생성한다. → 마인크래프트 월드는 수많은 구역으로 나누어진 청크의 집합체다. 2. 마인크래프트 월드는 이용자가 입..

내일배움캠프 2024.08.16