- 방문자수
- Best Story
전체 방문자
오늘 방문자
어제 방문자
😊인기 글
-
[Python] 리스트(list) 연산 - insert(), pop(), remove(), reverse(), sort(), index(), count()
insert() insert(x, y)는 리스트의 x번째 위치에 y를 삽입 기존에 x번째 위치에 있던 원소와 그 뒤 원소들은 한 칸씩 뒤로 밀린다. L = [0, 1, 2] L.insert(2, 10) print(L) # [0, 1, 10, 2] pop() 리스트의 맨 마지막 원소를 리턴하고 해당 원소는 삭제한다. pop(i)는 리스트의 i번째 원소를 리턴하고 삭제한다. L = [0, 1, 2, 3] L.pop() print(L) # [0, 1, 2] L.pop(1) # 1번째 원소 리턴 후 삭제 print(L) # [0, 2] remove() remove(x)를 실행 시, 리스트에서 첫 번째로 나오는 x를 삭제한다. 그렇기에 리스트에 동일한 x가 여러 개 있다면, 가장 첫 번째로 나오는 x만 삭제된다...
-
[Unity] New Input System #1 | 세팅하기
/* 수업 들으며 했던 내용들을 실습해보며 정리한 글입니다. 잘못된 부분이 있다면 말씀해주세요. */ 게임은 특정 플랫폼 하나만을 겨냥하고 개발하는 경우는 거의 없다. 스케일이 커지게 되면 PC 말고도 모바일, 콘솔 등의 플랫폼도 지원을 해야 할텐데, 그 중에서도, 기존 Unity Input System은 게임 플랫폼 환경 서비스를 추가할 때 골머리를 앓게하는 요소라고 한다. PC에서는 키보드와 마우스, 모바일은 화면 터치, 콘솔에서는 조이스틱을 이용하는 등 플랫폼마다 사용하는 입력 방식이 다르기 때문이다. 즉, 다음과 같이 코드를 짜게 되면 플랫폼 추가 확장할 때 게임 Input System을 수정해야 하는 번거로움이 생긴다. if(Input.GetKey(KeyCode.UpArrow)) // PC에서 ..
-
[Unity 3D] 애니메이션 Root Motion이 Transform값을 변경시키며 발생한 버그 해결하기
1. 루트 모션(Root Motion)이란? 루트 모션(Root Motion)은 오브젝트의 위치와 회전을 애니메이션이 제어할 수 있도록 허용하는 것을 말합니다. 루트 모션이 활성화된 애니메이션이라면, 해당 애니메이션이 적용된 오브젝트의 트랜스폼(Transform) 값은 영향을 받아 변하게 될 겁니다. 예를 들어, 루트 모션이 적용된 걷는 애니메이션(WALK)은 캐릭터가 걷는 것에 따라 위치 값도 변하게 됩니다. 루트 모션이 적용되지 않았다면 캐릭터는 제자리 걸음을 하겠지요. 2. 루트 모션이 일으킬 수 있는 문제점 물론 스크립트 코드를 작성하여 움직임을 구현하는 것보다 애니메이션을 통해 움직임을 구현하는 것이 훨씬 더 자연스럽습니다. 특히나 시네마틱 영상을 제작하는데엔, 루트 모션이 더욱 더 현실같은 자..
-
[Unity] New Input System #2 | 키 입력을 스크립트에 전달하여 처리하기
저번 글에서 기본적인 셋팅을 끝냈었다. 이번 글에서는 입력값을 스크립트(script)에 전달하는 방식 중 2가지 정도를 사용하여 로직을 제어하는 걸 해보고자 한다. Player 게임 오브젝트에 Player Input 컴포넌트를 부착했었다. 키를 입력했다면, 키보드로 들어온 입력값을 주인공 캐릭터에게 전달해줘야 한다. 1. 로직을 제어할 스크립트(script) 부착하기 Player 게임 오브젝트에 키 입력값을 전달받고, 해당 로직을 제어할 스크립트를 만들어서 붙여줬다. Send Messages, Broadcast Messages : 유니티의 Send Message 기능을 사용하여 특정 함수를 호출하는 방식 Invoke Unity Events, Invoke C Sharp Events : 유니티나 C#의 이벤..
-
[C#] 객체지향의 꽃, 인터페이스(Interface) - 1편
/* 책을 바탕으로 공부한 글입니다. */ 다중상속이 허용되지 않는 C#에서 인터페이스(Interface)는 객체지향 프로그래밍을 한층 더 강력하게 만들어주는 요소다. 객체지향의 꽃이며, 객체지향 프로그래밍의 고수는 인터페이스를 잘 활용할 수 있어야 한다고 한다. 인터페이스(Interface)의 선언과 특징 인터페이스는 다음과 같은 선언 형식과 특징을 가진다. interface 인터페이스이름 { 반환형 메소드이름1(매개변수 목록); 반환형 메소드이름2(매개변수 목록); ... } 인터페이스는 메소드, 이벤트, 인덱서, 프로퍼티만 가질 수 있다. 접근 제한 한정자를 사용할 수 없고, 모든 것이 public으로 선언된다. 인터페이스는 자신을 상속받는 클래스에게 오버라이딩을 강제한다. 자식 클래스에서 구현할 ..