본문 바로가기

Programming/C# * Unity12

[C#] 주소록 프로젝트 - 클래스 편 주소록 요구사항 이름,전화,주소를 입력/검색/변경/삭제/전체출력 한다. 클래스 정의 1) 시작 클래스2) 주소 클래스(Model) → 데이터 3) 메뉴 클래스(View) → 인터페이스 4) 주소록 관리 클래스(Controller) → 비즈니스 로직## MVC: 일반적인 업무용 프로그램의 정석## 객체화: 다른 클래스의 매서드를 갖다 쓰려면 반드시 객체를 생성해야 한다. new 클래스를 선언할때 메모리에 올라감. 범용적 기능을 가진 매서드 생성법 1) 클래스의 정체성을 훼손하며 편의상 해당 메서드를 자주 참조하는 클래스에 넣음 2) 클래스의 정체성을 유지하며 해당 메서드를 참조하는 클래스에서 (객체를 생성하지 않고) 매서드 앞에 클래스이름. 을 넣어준다. 3) Utility Class로 따로 생성해서 뺀다.. 2019. 3. 12.
[C#] 주소록 프로젝트 - 매서드 편 주소록 요구사항 이름,전화,주소를 입력/검색/변경/삭제/전체출력을 한다. 매서드 정의 01. 메뉴 반복 void MainLoop(); 02. 메뉴 출력 void PrintMenu(); 03. 메뉴 선택 int GetSelectMenu(); 04. 주소정보 입력(이름, 전화, 주소) void InputAddress(); 05. 주소정보 검색(이름으로 검색) void SerachAddress(); 06. 주소정보 변경(이름으로 검색 후 변경) void UpdateAddress(); 07. 주소정보 삭제(이름으로 검색 후 삭제) void DeleteAddress(); 08. 주소정보 전체출력 void PrintAllAddress(); 09. 프로그램 종료 void ProgramExit(); 10. 화면 지우기.. 2019. 3. 12.
[Unity] 06. 스카이박스(Sky Box) Sky Box 씬 뒤의 하늘 또는 먼 배경을 시뮬레이션 하기 위한 재질. 실존하는 것은 아님. 먼저 Asset Store에서 Skybox를 다운로드한 후 셋팅. [Window → Rendering → Lighting Settings] 2019. 3. 7.
[Unity] 05. 충돌(Colliders) Colliders Collider의 종류 이벤트, 트리거, 메세지와 같은 개념. 물리적 충돌이 발생했을 때 수행할 작업을 지정할 수 있는 컴포넌트이다. 1. Box Collider 가장 기본적인 상자 모양의 콜라이더로 캐릭터가 충돌을 일으키면 다른 씬으로 전환되는 포탈을 만들 수 있다. // CharacterController가 다른 물체의 Collider와 // 닿았을때 자동으로 호출되는 매서드 (반드시 충돌체가 있어야함) private void OnControllerColliderHit(ControllerColliderHit hit) { // 닿은 물체의 이름이 "portal" 일때 if (hit.collider.gameObject.name == "Portal") { Debug.Log("portal을.. 2019. 3. 7.
[Unity] 04. 애니메이션(Animation) Character Controller Slope Limit : 등판 각도 Step Offset : 계단 높이 Skin Width : 폭 너비(반지름의 10%가 이상적인 설정값) Min Move Distance : 최소 이동 거리 Center & Radius : Capsule Collider 컴포넌트와 같은 역할로 Character Controller에 내장되어 있음. 다른 물체와 접촉이 되었는가 안 되었는가를 물리적으로 계산함. 몸체에 맞게 하는 경우(연산이 많이 들어감) 또는 일반적으로는 캡슐 모양으로 준다. public float movSpeed = 5f; //이동 public float rotSpeed = 120f; //회전 CharacterController controller; //컴포넌트(기능.. 2019. 3. 7.
[C#] for문으로 최소공배수 구하기 Solution 1 int max = 0; Console.WriteLine("첫 번째 숫자를 입력하세요"); string str1 = Console.ReadLine(); int num1 = Int32.Parse(str1); Console.WriteLine("두 번째 숫자를 입력하세요"); string str2 = Console.ReadLine(); int num2 = Int32.Parse(str2); if (num1 < num2) max = num2; else max = num1; for(;true; max++) { if (max%num1 == 0 || max % num2 == 0) break; } Console.WriteLine(max); }Solution 2 int num0 = 0, num1 = 0;.. 2019. 3. 6.
[C#] while문과 do while문 비교 while문 while (true) { 실행문 } // 실행문을 무한히 반복하는 무한루프() 안이 참인 조건일 때 계속 반복하고, 거짓일 때 종료하는 문법. 프로그래밍의 시초인 자동화를 위한 문법 중의 기본이라고 볼 수 있겠다. while문을 실행하려면 시작 조건, 종료 조건, 실행문이 필요하다. 즉, '언제부터 언제까지 무엇을' 반복적으로 실행한다는 의미이다. int num = 0; //시작조건 while (num < 10) //종료조건 { Console.WriteLine("나무를 {0}번 찍었습니다", num++); //실행문 }do while문 처음부터 조건을 검사하지 않는 상황도 있다. 먼저 사용자로부터 변수 값을 입력받아야 할 때 등등. 이때, 최초 1회는 무조건 한번 들어와서 실행하고 그 다음.. 2019. 3. 5.
[Unity] 03. 지형(Terrain) 1. Paint Texture [마우스 우클릭 → 3D Object → Tettrain 생성] 이때, Terrain은 중심점의 위치가 모서리를 기준으로 (0,0,0)으로 찍히기 때문에 Position을 설정할 때 주의한다! [Inspector → Paint Terrain → Pain Texture → Edit Terrain Layers] Asset Store에서 미리 받아 둔 Asset을 가져온다. 그러면 아래와 같이 표면에 풀밭이 깔린다. 2. Raise or Lower Terrain 이제 지형을 만들어 주기 위해 표면에 굴곡을 줄 것이다. 마우스 좌클릭 하면 올리고, shift + 마우스 좌클릭 하면 내린다. 코멘트가 친절하게 안내해주고 있다. Brush Size와 Opacity를 조정해준다. 그 위.. 2019. 3. 4.
[C#] switch~case문 응용 switch ~ case문은 if ~ else문과 유사한 역할을 하지만 그 활용 범위가 좁다. 가령 특정한 값만 제어할 수 있어 범위는 제어할 수 없다. 그러나 전혀 방법이 없는 것은 아니다. switch ~ case문을 응용해 범위를 제어해보자.문제사용자에게 점수를 입력받아 90점 이상이면 "A학점" 80점 이상이면 "B학점" 70점 이상이면 "C학점" 60점 이상이면 "D학점" 60점 미만이면 "F학점"을 출력해보자. 해결[점수와 결과 변수 선언 → 입력 받기 → switch ~ case문을 응용해 구간별로 다른 학점을 결과에 저장 → 결과 출력]정수간 연산에는 소수점이 찍히지 않음으로 입력받은 점수를 10으로 나눈 결과인 '몫'을 구간 대신 case문에 적용할 수 있다. 단, case에 들어가는 값.. 2019. 3. 4.