TIL 0202 게임개발 숙련 개인 과제 - 2

강성원·2024년 2월 5일
0

TIL 오늘 배운 것

목록 보기
30/70

공부한 내용

강의 내용 중에 중요하다고 생각한 것

Interface

3강에서 인터페이스를 사용해서 데미지 입는 함수의 정의를 강제함

인터페이스에는 많은 특징이 있는데 그 중에 구현을 강제하는 특징이 있다.

  • 계약 : 인터페이스는 멤버들의 집합으로 이루어져 있습니다. 클래스나 구조체는 해당 인터페이스를 구현함으로써 인터페이스가 정의한 멤버들을 반드시 구현해야 한다.
public interface IMyInterface
{
    void MyMethod();
}
public class MyClass : IMyInterface
{
    public void MyMethod() // 반드시 구현해야 한다.
    {
        // 내용 구현함
    }
}

인터페이스는 아직 헷갈리기 때문에 델리게이트처럼 나중에 따로 제대로 정리하는 시간을 가지고싶다.

그 외에 궁금한 것들

사실 밑에 써놓은 것들을 다 정리하려 했으나 일정 관리 실패로 이 글과 내 수첩에 할 일 목록으로 빼놓을 생각이다. 아마..설에 시간 남으니까 그 때 잔뜩 정리할 예정이다.
급한 것이 아니니 일단 어떤 부분에서 궁금점과 중요함을 느꼈는지 적어보겠다.

TryGetComponent

이 함수의 기능보다는 인터페이스 리스트랑 TryGetComponent를 같이 연계한 내용을 정리할 것.

Coroutine

코루틴은 비동기 프로그래밍의 한 종류인데, 사용법과 어느 부분에 사용하면 좋을지 따로 C#이나 유니티 시리즈에 넣을 예정.

Animation Curve

오브젝트의 부드러운 변화를 표현하기 위한 기능이기도 하고, 시각적인 부분에 많이 쓰일 것 같다.

Gradient

색의 변화를 나타내는 것인데, 이 것은 '유니티의 Gradient'보다는 Gradient 자체의 개념을 따로 정리할 필요가 있다고 생각함.

UpdateLighting 함수

이 함수에 각도 계산이 이해가 되지 않음.

알고리즘 문제

시저 암호

제출한 코드

public class Solution {
    public string solution(string s, int n) {
        char[] charArr = s.ToCharArray();
        
        for(int i = 0; i < s.Length; ++i)
        {
            if(charArr[i] == ' ') continue;
            
            int num = (int)charArr[i] + n;
            
            if(charArr[i] >= 'A' && charArr[i] <= 'Z')
            {
                if(num > 'Z')
                    num -= 26;
            }
            else
            {
                if(num > 'z')
                    num -= 26;
            }
            
            charArr[i] = (char)num;
        }
        
        return new string(charArr);
    }
}

string은 문자열의 요소를 임의로 바꿀 수 없어서 char형의 배열로 변환해준 후에 교체

profile
개발은삼순이발

0개의 댓글