목록전체 글 (142)
오보에블로그
Comparision 정렬 메소드중 오버로드 된것중에 하나로는 List.Sort(Comparision) 가 있다. Comparision 는 delegate 로 정의된 대리자로, delegate int Comparison(T x, T y); 로 Comparison에는 x 와 y를 받아서 x가 y 보다 작으면 0보다 작은 정수를, x 와 y가 같으면 0을, x가 y 보다 크면 1 을 리턴해야하는 함수를 할당해야한다. 이걸 쓰면 크고 작음의 기준을 커스텀하게 작성할 수 있어서 편리하다. 예시 public string[] solution(string[] strings, int n) { List stringList = new List(); stringList.AddRange(strings); stringList...
Count Count(IEnumerable, Func) 해당 람다식에서 true를 반환하는 원소만 센다. 예시 List numbers = new List() {1,2,3,4,5,6,7,8}; int answer = numbers.Count( x => { if (x % 2 == 1) return true; else return false; } ); Select 해당 열거자에대해 다른 포맷으로 변경 예시 int[] numbers = {1,2,3,4,5,6,7 }; IEnumerable query = numbers.Select((number, index) => { if (number % 2 == 0) return number; else return -1; }); IEnumerable squares = Enum..
IEnumerator와 IEnumerable 사용 목적은 아래 링크를 참고한다. IEnmerator 인터페이스 설명 public interface IEnumerator { // Enumerator의 열거자에서 현재 바라보고 있는 위치를 반환 object? Current { get; } // 열거자에서 다음 element로 이동하는 함수 bool MoveNext(); // 열거자에서 현재 바라보고 있는 위치를 초기로 변환 void Reset(); } IEnumerable 인터페이스 설명 public interface IEnumerable { // 열거자에 대한 Enumerator 반환 IEnumerator GetEnumerator(); } IEnumerator , IEnumerable 이용 예시 class..
API 설명 Material.SetTexture 대표 사용 형식 : public void SetTexture(string propertyName,Texture texture) 해당 Material에 프로퍼티로 속해있는 텍스처를 지정한 texture로 변경하자. 사용 예시 아래와 같이 사용하려면 해당 매테리얼에 지정되어있는 쉐이더 프로퍼티에 _MainTex가 있어야할 것이다. Renderer _renderer = gameObject.GetComponent(); _material = gameObject.GetComponent().material; _material.SetTexture("_MainTex", _texture);
참고 스크립트에서 게임오브젝트 쉐이더 불러오기 맨 처음에는 GetComponent() 을통해 해당 게임 오브젝트의 매테리얼에 접근하려고 했지만, 해당 게임 오브젝트는 매테리얼이 없다고 오류가 나왔다. 인스펙터 창을 보니, 매테리얼이 컴포넌트 처럼 들어가 있다고 생각했는데, 뭔가 다른 컴포넌트와는 다른 생김새이다. 인스펙터 창을 좀더 뒤져보니,Mesh Renderer 컴포넌트 안에 Meterial을 추가하는 필드가 있었다. 이제 아래와 같이 코드를 작성하면 게임 오브젝트가 가지고 있는 쉐이더를 확인할 수 있다. _material = gameObject.GetComponent().material; Debug.Log(_material.mainTexture);
1일 1 코딩 문제 풀기 하루마다 프로그래머스 문제를 풀고 풀지 못하면 벌금 5000원씩 내기로 했다. 점점 쉬운 문제만 풀려고 요령 피우고 있으나, 꾸준히 진행 중 유니티 공부 입사하고나서 얼마지나지 않아서 샀던 유니티 인프런강의를 다 들었고, 토이 프로젝트를 만들었다. 쉐이더 공부 한 20일 전부터 "유니티 쉐이더 스타트업" 이라는 책으로 공부 중이며 절반보다 많이 보았다. 21년이 다 가기전에 완독을 목표로 하고 있다. 관련 프젝도 해야하는데,, 운동 두 달동안 열심히 하다가 지금은 쉬는 중. 좀 정리가 되면 다시 다니자. 회고 정말 빠르게 21년이 가버렸다. 좋은 사람들도 많이 만나고, 나 스스로에대해서 고민을 많이 하게 되었던 해였다. 좋은 사람들과의 인연을 이어갈 수 있는 사람이 되고싶다. 이..
Unity MetrialValue Chart 링크 Unity - Manual: Material charts Material charts Use these charts as reference for realistic settings: Reference Chart for Metallic settings Reference Chart for Specular settings There are also hints on how to make realistic materials in these charts. In essence it is about choosing a wor docs.unity3d.com
1인칭 시점으로 보이게끔 하기 위한 조건 키보드 제어가 가능해야한다. 마우스로 카메라 방향 전환이 가능해야한다. 마우스로 방향이 조절 되어있을 때, y 축 회전 방향으로는 키보드 제어로 인한 전진시 적용이 되어야하지만, x 축 방향 회전시 키보드 제어를 하면 위로 올라가거나 아래로 내려가므로 막아 놔야한다. void MouseRoatate() { float yRotateSize = Input.GetAxis("Mouse X") \* mouseSpeed; float xRotateSize = -Input.GetAxis("Mouse Y") \* mouseSpeed; transform.localRotation \*= Quaternion.Euler(0.0f, yRotateSize, 0.0f); mainCamera...
Shader 언어란 Shader 프로그래밍을 편하게 할 수 있게 만든 언어 도메인 특화 언어(DSL)라고 불러도 되는걸까? Cg(C for graphics) NVIDIA에서 개발한 상위 레벨 쉐이딩 언어. OpenGL/DirectX 모두 호환된다. HLSL(High Level Shading Language) DirectX에서 지원하는 셰이더 언어. GLSL(OpenGL Shading Language) OpenGL에서 지원하는 셰이더 언어. 개발자가 그래픽스 파이프라인을 직접 제어할 수 있는 언어 여러 운영체제 간의 호환성을 지원 쉐이더라고 쓰니까 빨간줄이 뜨네..
아래의 사진과 같이 레포지터리 루트에 유니티 프로젝트가 바로 있는 것이 아닌, 루트에 유니티 프로젝트 폴더가 있는 구조라면, Github에서 제공하는 Unity 용 .gitignore가 잘 먹히지 않는다. 원본 .gitignore에는 Library , Temp .. 의 폴더를 무시하라고 명시되어 있지만, 트래킹 되고 있는 상황 해당 부분을 아래처럼 바꿔주자. 그러면 루트 폴더 자체가 유니티 프로젝트가 아니어도 .gitignore가 제대로 동작한다. 그 후에 .gitignore만 push 한다. 꼭 git fetch 를 해줘서야한다. 유니티 프로젝트를 push한다.