728x90
반응형

개발 26

[C# 교과서] 40~41. 대리자, 이벤트

대리자(위임/델리게이트) 대리자(delegate)는 매개변수 목록 및 반환 형식이 있는 메서드 참조(포인터)를 나타내는 형식 대리자는 함수 자체를 데이터 하나로 보고 의미 그대로 다른 메서드를 대신 실행하는 기능 한 번에 메서드 하나 이상을 대신해서 호출 내부적으로 MulticastDelegate 클래스에서 기능을 상속 using System; class DelegateDemo { // 함수 생성 -> 매개변수도 없고 반환값도 없는 함수 static void Hi() => Console.WriteLine("Hi"); // 대리자 생성 -> 매개변수도 없고 반환값도 없는 함수를 대신 실행할 대리자 delegate void SayDelegate(); static void Main() { // Hi 함수를 s..

C#/C# 교과서 2023.01.18

[15강] 미니게임 미션 만들기 : 쓰레기 버리기 2

버튼을 누르면 쓰레기가 내려가고, 놓으면 다시 벽이 생기고 미션 완료가 되면 자동으로 UI가 내려가는 것을 확인한다 Trash에 RectMask2D를 넣어주면 마스크 안에 딱! 잡혀서 쓰레기들이 선에 맞춰서 안 나가고 있는 모습을 볼 수 있다 Mission2.cs코드 using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using UnityEngine.EventSystems; using Random = UnityEngine.Random; public class Mission2 : MonoBehaviour { public Transform trash, ha..

[14강] 미니게임 미션 만들기 : 쓰레기 버리기 1

Mission2 만들어서 겹치게 둠 피벗도 오른쪽 아래로 수정 box 콜라이더로 오른쪽 벽을 설정 이걸 복붙하고 x를 -368로 설정해서 양쪽 벽을 만들어준다 Create Empty로 바닥 콜라이더도 만들어준다 각각의 쓰레기들 이미지 넣어주고 크기도 조정해준다 쓰레기들을 잡아서 Rigidbody2D와 BoxColider2D를 AddComponent해주고 중력을 주기위해서 Rigidbody2D - Gravity Scale을 50으로 설정해준다 쓰레기마다 콜라이더 설정해주고 실행 시켜주면 물리 작용을 받는 것을 확인 가능하다! Trash1~5를 캐릭터처럼 Resources에 옮겨준다 Mission1.cs를 복제해서 Mission2.cs를 만들어준다 쓰레기 스폰을 위한 for문 작성 // 초기화 for (in..

[13강] 미니게임 미션 만들기 : 버튼 색 변경

버튼을 만들어준다. 후에 누르면 색깔이 변경 될 수 있도록 Mission1.cs 스크립트에서 작성해준다 // 육각형 버튼 누르면 호출 public void ClickButton() { Image img = EventSystem.current.currentSelectedGameObject.GetComponent(); // 하얀색 if (img.color == Color.white) { // 빨간색으로 img.color = red; } // 빨간색 else { // 하얀색 img.color = Color.white; } } 컴포넌트에서 색깔 지정 클릭하면 빨간색으로 표시됨 빨간색을 눌러 모두 흰색이 되면 완료되는 미션임 그래서 USE를 클릭해서 미션이 발생했을 때 7개중 랜덤하게 빨간색이 나왔으면 좋겠음 미..

[12강] 미션 애니메이션 제작하기

미션 버튼이 활성화 되는 기능과 미션 버튼을 눌렀을 때 미션 창 UI가 올라오는 애니메이션 만든는 방법을 배움 캐릭터를 더블클릭해서 캔버스 안에 버튼을 만들어준다 Use 이미지를 넣어준다 크기는 이렇게 설정한다 그리고 아래 Button에 있는 Interactable은 체크 해제한다 playerCtrl.cs 를 열어주고 using UnityEngine.UI; 를 맨위에 선언해준다 public Button btn; 으로 가져오고 private void OnTriggerEnter2D(Collider2D col) { if (col.tag == "Mission") { btn.interactable = true; } } private void OnTriggerExit2D(Collider2D col) { if (co..

[11강] 미니게임 미션 준비하기

첫 번째로, 메인 메뉴에서 미션 버튼을 누르면 미션으로 갈 수 있도록 설정해야함 메인 메뉴 스크립트에 // 미션 버튼 누르면 호출 public void ClickMission() { gameObject.SetActive(false); missionView.SetActive(true); } 작성해준다 만든거를 미션의 온클릭에 넣어준다 메인메뉴에 미션뷰에도 미션을 넣어주면 준비 완료 새롭게 Resources 라는 폴더를 만들어주고 그 안에 캐릭터를 드래그해서 넣어줌 그럼 캐릭터가 파란색 글씨가 됨 (철자 틀리면 안됨) 하이어라키 창에 있는 캐릭터는 지워주고 메인 메뉴 스크립트 수정 // 미션 버튼 누르면 호출 public void ClickMission() { gameObject.SetActive(false..

[10강] 설정화면 꾸미기

설정 화면 안에는 조작 방법을 고를 수 있는 버튼과 게임 종료, 게임으로 돌아가는 기능을 배치 캐릭터-캔버스 안에 UI - Image를 생성해줌 Image에 Setting_Back 이미지를 넣어줌 텍스트 오버플로우 설정. Quit만 제외하고 On Click()에 Setting 넣어주기 각각 맞는 함수 넣어주기 실행하고 버튼을 눌러 실행이 잘 되는지 확인 지금 화면 움직이는 것이 터치인지 조이스틱인지 판별이 잘 안가기 때문에 스크립트를 작성해서 구분해줌 누른대로 색깔 변경되는 것 확인 가넝! 대신에 지금 창을 켜도 이동이 가능하다는 문제가 있음 bool형으로 isCantMove를 스크립트에 만들어주고 적용해줌 그러면 설정 창 눌러도 이제 안 움직임!! transition이 안 맞아서 강의 내용이랑 좀 어긋..

[9강] 자주 발생하는 오류 대처법

캐릭터의 속도를 높이면 콜라이더를 뚫고 지나감 캐릭터의 이동속도가 충돌을 감지하는 속도보다 빠르기 때문이다 스피드를 빠르게 유지하고 싶을 경우에는 콜라이더의 두께를 두껍게 해주어야함 -방법- 1. 캐릭터의 박스콜라이더의 Offset Y를 -0.32로 위치 조절 Size Y를 0.3 으로 늘려준다 2. RigidBody에서 Conllision Detection을 Continuous로 바꿔준다 (연속적으로 충돌을 체크한다는 의미) 3. 게임의 진행시간 조절 프로젝트 세팅-Time - Fixed Timestep을 0.002로 수정 게임의 플레이 시간이 10배가 줄어들어서 충돌을 감지할 시간이 늘어난 것 UnassignedReference 레퍼런스가 할당되어 있지 않다는 오류 한 번 클릭하면 유니티가 어디가 할..

[8강] 게임 맵 꾸미기

ctrl + Shift + n 으로 새로운 Empty 를 만들어준다 이름은 Mission으로 수정해주고 Transform을 reset해준다 이 안에 Sprites-Map의 1~10부터 차근차근 넣어준다 캐릭터의 Order in Layer는 0 Back을 -2, 나머지를 -1로 설정해준다 맵에 충돌(콜라이더) 설정을 해준다 맵이 직사각형 모양은 아니기 때문에 엣지 콜라이더로 하나하나 그려준다... (힘들다) 기본 카페테리아 맵 안에 있는 파라솔와 야자수도 엣지 콜라이더로 그려주고 맵에 왼쪽 공백과 오른쪽 공백도 엣지 콜라이더로 그려준다. 캐릭터의 콜라이더 사이즈 조절 x는 0.7 y는 0.2로 하고 Offset의 y를 -0.37로해서 발 부분에만 콜라이더가 있도록 설정 이대로 플레이하면 맵이 빙글빙글 돈다..

[C# 교과서] 31~32. 알고리즘과 절차 지향 프로그래밍, 개체 만들기

알고리즘 문제를 해결하는 일련의 절차나 방법을 공식으로 표현한 풀이법 프로그래밍을 할 때 생긴 문제의 해결 방법을 체계적으로 정리한 것 ‘문제 해결 능력’ 입력(input) → 처리(process) → 출력(output) 중 처리 단계가 알고리즘 단계 입력 : 자료구조에서 담당하는 영역. 간단히 변수 및 배열의 데이터를 사용하고 나아가서는 컬렉션, 파일, 데이터베이스의 데이터를 사용하는 영역 처리 : 알고리즘 처리 영역 출력 : 화면에 보이는 UI를 담당하는 영역 근삿값 알고리즘 using System; using System.Linq; using static System.Console; class Program2 { static void Main() { // 절댓값 구하기 로컬 함수 : Math.Abs..

C#/C# 교과서 2023.01.09
728x90
반응형