일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 장애물달리기
- 프로그래머스
- 자료구조
- Generic
- 스파르타내일배움캠프
- soundmanager
- 인터페이스
- 람다식
- 유니티
- 효과음
- 직렬화
- BGM
- FSM
- 스택
- LINQ
- inputsystem
- 메서드
- delegate
- 코루틴
- 비선형자료구조
- script
- 유한상태머신
- ObjectPool
- unity
- skybox
- UI
- invokec#events
- 배열
- InputManager
- c#
- Today
- Total
목록C# (23)
Unity 개발일지

[확인 문제]1. 다음 struct 코드와 class 코드의 결과를 예측해보고, 이유를 생각해봅시다.더보기[Struct 의 결과]Point 1 X: 10Point 2 X: 30 [이유]Point는 struct로 정의되어 있어 값 형식이다.point2는 point1의 값을 복사받아 독립적인 인스턴스가 된다.따라서 point2.X를 수정해도 point1.X는 영향을 받지 않는다. [Class 의 결과]Point 1 X: 30Point 2 X: 30 [이유] Point는 class로 정의되어있어 참조 형식이다.point2는 point1과 동일한 인스턴스를 참조하게 된다.따라서 point2.X를 수정하면 point1.X도 영향을 받아 동일한 값을 갖게 된다. [설명 문제]1. 참조 형식과 값 형식에 대해 설명..

[확인문제] 1. 위 코드의 출력 결과는 무엇인가요? 그 이유는 무엇인가요?더보기7과 35가 출력된다.첫번째 MathOperation은 Add메서드로 설정되어 3과 4를 더한 결과인 7을 출력두번째 MathOperation은 Multiply메서드로 설정되어 7과 5를 곱한 결과인 35를 출력 2. 위 코드의 Main함수를 아래처럼 바꿔도 같은 방식으로 동작할까요? 그 이유는 무엇인가요?더보기같은 방식으로 동작한다.Func는 C#에서 재공하는 내장 델리게이트 타입 중 하나로 매개변수를 받아 결과를 반환하는 메서드를 나타낸다.Func는 두개의 ins 매개변수를 받아 int 결과를 반환한다.둘 다 동일한 시그니처(매개변수와 반환타입)을 가지므로 동일하게 작동한다. 3. 델리게이트를 사용하여 메서드를 매개변수로..

객체지향에 대해 잘 알고있는지 간단한 문제를 풀어보자.[실전문제]1. 위 코드에서 삼각형 Triangle 클래스를 새로 작성한다고 했을 때, AreaCalculator의 코드를 수정하지 않고, AreaCalculator가 삼각형의 넓이를 계산하도록 만들 수 있을까요?더보기IShape 라는 인터페이스를 정의하여 각 도형 클래스가 해당 인터페이스를 상속하게 하였고, AreaCalculatorExtensions 확장 메서드를 사용하여 AreaCalculator를 수정하지 않고, 삼각형 넓이를 계산할 수 있도록 CalculateTriangleArea 메서드를 작성하였다. 확장 메서드는 특정 클래스의 인스턴스 메서드처럼 호출된다.확장 메서드는 첫 번째 매개변수로 지정된 클래스의 인스턴스를 메서드 호출 대상 객체로..

어느정도 C#과 유니티에 익숙해진 것 같다.배운 문법을 잘 사용하는 것도 좋지만, 정확하게 알고 사용해보자. [연습문제] 1. 위 예제 코드에서 Car는 무엇을 나타내나요? car1과 car2는 무엇을 나타내나요?더보기Car는 클래스를 나타내고, car1과 car2는 Car의 인스턴스, 즉 객체를 뜻한다. 2. 위 코드에서 Car 클래스에 정의된 메서드를 호출할 때 car1과 car2를 사용해야 하는 이유는 무엇일까요?더보기car1과 car2는 Car 클래스의 인스턴스로, 인스턴스 메서드는 객체를 통해서만 호출할 수 있기 때문이다. 3. 위 코드에 어떤 메서드를 추가하고 아래와 같이 사용했습니다. SomeMethod에는 static 한정자가 붙어있을까요? 그 이유는 무엇인가요?더보기SomeMethod에..

[Generic 이란?]타입 매개변수를 사용하여 클래스, 구조체, 인터페이스, 메서드 등을 정의할 수 있게 하는 기능으로, Generic을 사용하면 데이터 타입에 의존하지 않는 재사용가능한 코드를 작성할 수 있다. 이는 코드의 타입 안전성을 높이고, 성능을 향상시키며, 코드 중복을 줄이는 데 도움을 준다.쉽게 말하면, 제네릭은 다양한 데이터 타입에 하나의 함수나 클래스를 정의할 수 있도록 하는 프로그래밍의 기법이다. 'T'라는 타입 매개변수를 받아들이며, 이 타입은 클래스가 인스턴스화될 때 구체적으로 결정된다. 매개변수로 받은 타입 'T'를 이용하여 데이터를 출력한다.더보기[Generic을 어떻게 활용해야하나?]1. 여러 데이터 형식에 의해 동일한 로직을 적용해야할 때2. 제네릭 컬랙션을 활용할 때 게임..

[초기 제시문] for문으로 배열을 돌면서 height 보다 큰 값의 개수를 구하는 문제이다.배열의 크기를 구할 때는 array.Length를 쓰고, if문으로 aswer의 값을 늘려 return 해주면 된다. [답안] [참고할 만한 답안]using문으로 System.Linq;를 선언하여 람다식을 이용하였다.array.Count로 answer에 바로 값을 대입하였고Count안에 람다식으로 x > height 로 바로 대입하였다. [초기 제시문]배열을 오름차순으로 나열 후 중앙값을 구하는 문제이다.array의 길이는 홀수이고, int형이므로 array.Length / 2 를 해주면 중간값을 구할 수 있다. [답안] [참고할 만한 답안]using문으로 Linq를 선언한 후 Orderby와 람다식을 이용하..

진행하기 전에 데이터 직렬화(Serialization), 역직렬화(Deserialization)는 무엇이고 왜 필요한지 알아보자. 직렬화 ( Serialization ) 란?메모리를 디스크에 저장하거나 네트워크 통신에 사용하기 위한 형식으로 변환하는 것 역직렬화 ( Deserialization ) 란?디스크에 저장한 데이터를 읽거나, 네트워크 통신으로 받은 데이터를 메모리에 쓸 수 있도록 다시 변환하는 것 직렬화는 왜 필요한가?메모리에 대해 이해하기 위해서는 힙 영역과 스택영역에 대한 기본적인 지식이 있어야한다. 1. 값 형식 데이터(Value Type) 우리가 흔히 선언해서 사용하는 int, string, char 등 값 형식의 데이터들은 스택에 메모리가 쌓이고 직접 접근이 가능하다. 2. 참조 형식..

TextRpg를 만드는 중 플레이어의 직업을 영문명이 아닌 한글로 정의할 수 없을까에 대해 고민하던 중"키를 입력하면 값을 가져올 수 있는 방법이 있으면 어떨까?" 라는 조언을 듣고 찾다가Dictionary를 사용해보자는 결론에 도달했다.DictionaryDictionary는 Collection(자료를 모아 놓은 데이터 구조)의 일종으로 키와 값으로 구성된 데이터를 저장한다.Dictionary는 중복된 키를 가질 수 없으며, 키와 값의 쌍을 이루어 데이터를 저장한다.Divtionary를 사용하기 위해서는 using System.Colloection.Generic;이 상단에 선언되어있어야한다. List와의 차이점List는 인덱스 번호를 사용하여 요소의 값을 얻는다. 그에 반해 Dictionary는 Key값..