본문 바로가기

▶Programming

유니티 유용한 함수들 Clamp: 오브젝트의 범위를 정해준다. 예를들어 슈팅게임을 만든다고 하면 맵을 벗어나지 않고 움직이게 해야한다. 그때 이 함수를 사용한다. Mathf.Clamp(GetComponent().position.x, xMin, xMax): position.x는 현재 위치 xMin은 최소, xMax는 최대 ===================================================================================================================**Quaternion : 회전을 위한 함수 라고 간단하게 생각하자. **Quaternion.LookRotation(벡터값) : 쉽게 얘기해서 target을 기준으로 회전한다. similar to the L.. 더보기
Collider Collider: 충돌..충돌..충돌.. 옆의 케이지(초록색 선)가 바로 Collider를 판별해주는 선이다. 한마디로 말해서 이 선에 닿으면 충돌했음을 감지하는 것. 가장 기본적인 Collider는 Box, Sphere, capsule collider가 있다. 이녀석들은 연산이 비교적 간단하다. 그래서 많이 사용. 옆에 보이는 collider가 Mesh Collider다. 위의 Collider 들과 비교했을 때 상당히 복잡해 보인다. 실제로도 연산이 매우 복잡하므로 실제로 사용할 땐 간단한 mesh를 사용하여 케이지의 수를 줄여서 사용해야한다. 옆에 보이는 Mesh와 아래 Mesh Collider에 보이는 Mesh의 내용이 처음에는 같다. 이 Mesh는 처음에 오브젝트를 만들 때 주어지는 것으로써, M.. 더보기
에러,경고 등등 **형식이지만 변수처럼 사용됩니다 : 이 말은 구조체 형식(다른 형식일수도..)으로 쓰면 안되고 변수처럼 써줘야 된다는 것. NullReferenceException: Obect reference not set to an instance of an object : 이건 쉽게 얘기해서 필요한 오브젝트가 연결이 안되었다는 의미.예를들어 내가 스크립트에서 public Rigidbody 를 만들었는데, 유니티에서 마우스 드레그로 연결을 안 했단 의미. 이렇게 만들어 놓고연결 안하면 위와 같은 에러가 나온다. UnityEngine.Componet 형식의 첫 번째 인수를 허용ㅎ하는 확장 메서드 XX가 없습니다. 라는 에러가 뜰 경우, GetComponent().메소드 더보기
transform transform(변환) 은 오브젝트의 이동, 회전, 크기 를 담당. transform.position: 단순하게 오브젝트의 위치를 이동. 간단하게 말해서 유니티의 플레이버튼을 눌렀을 때 정해진 위치로 이동함.t 사용법: transform.position = new Vector3( 0, 4F, 0); 더보기
RigidBody RigidBody: 물리학 시뮬레이션을 통해 개체의 위치 제어. Mass: RigidBody의 질량. Drag: 저항력. 움직임에 대한 저항력=마찰력 등으로 생각 할 것.(0이면 공기저항이 0이고 무한대(INF)면 저항력이 엄청 큰게 아니라 즉시 멈춤임을 유의 할 것) Angular Drag: 토크에 의해 회전할 때 오브젝트에 영향을 주는 공기 저항의 양. 0이면 공기 저항 없음. 이 파라미터의 값을 무한대(infinity)로 설정하는 것만으로는 오브젝트의 회전을 즉시 중지할 수 없다는 점에 유의하십시오. Use Gravity: 중력 적용. Is Kinematic: 물리시스템 무효(체크시), 활성화하면 오브젝트는 물리 엔진에 의해 주도되지 않으며, Transform에 의해서만 조작될 수 있습니다. 이것은.. 더보기
UI 캔버스 UI 캔버스는 아래와 같이 화면에 표시되는 hp게이지 바 or 버튼UI 등 여러가지 형태의 UI를 표현 할 수 있게 해주는 기능이다. 사용하기 전에 2D버튼을 누른 후 사용하자. 캔버스를 Hierarchy에 등록하면 여러가지 형태의 UI를 등록 할 수 있게 해준다. 버튼, 이미지 등등.. Canvas에서 Render Mode 중 overlay는 말 그대로 덮어씌우는 기능이다.전체화면에 캔버스를 덮어씌워 버튼 등의 위치를 조절 할 수 있게 해준다. Render Mode 중 Screen Space - Camera는 특정 카메라를 파라미터로 받아특정 카메라의 움직임에 따라 버튼이라든지 UI의 모습 등을 변화 시킬 때 사용한다. Render Mode 중 worl Space는 어디에서나 캔버스를 만들 수 있게 R.. 더보기
public private protected public은 전체공개-누구나 레퍼런스(참조)를 가능하게 해줌. 모든 패키지에서(굳이 같은 패키지 아니어도 사용 가능!) private은 비공개(private를 선언한 클래스 내부에서만 사용 가능) protected는 가족공개(protected를 선언한 클래스와 상속 받은 클래스에서 사용 가능) 위 그림은 public, private, protected를 보여주는 화면이다. class를 만들었는데 이름이 Hellow이다. 이걸 메인에서 인스턴스화 시켜서 인스턴스로 만들었다. 그리고 인스턴스의 메소드를 사용하기 위해메소드를 보는 순간 쓸 수 있는건 public과 protected관련 메소드였다. private는 private를 선언한 class에서 밖에사용 할 수 없으므로 쓸 수 없다. 내가 착각한게 pu.. 더보기
recursive 리커시브 완벽히 이해하기 C언으로 하는 자료구조를 하다보면 리커시브가 상당히 많이 나온다. 그런데 기본적으로 아주쉽고, 직관적으로 알 수 있는 리커시브가 아니라, 상당히 난해하고 머리로 쉽게 이해하지 못하는 리커시브가 많이 등장한다. 그래서 이번에 상당히 복잡한 리커시브를 확실히 이해하고자 한다. 쓰인 코드는 깊이 우선 탐색으로, 갈 수 있는 경로를 구하는 코드이다. 어쨋든 사용되는 리커시브를 통해 리커시브를 완벽히 이해하자.노드의 모양은 이러하다. 만약 내가 0번 노드에서 시작을 한다면 0에서 갈 수 있는 노드는 3번과 4번노드가 있다. 둘중에 숫자가 작은 노드를 선택한다. 그러면 3이 선택될 것이고 3번 노드는 또 다시 갈 수 있는 길을 탐색 할 것이다. 이때 0번은 지나온 길이므로 갈 수 없음을 표시하고, 나머지 노드중 가.. 더보기
R 파일에러 1. clean 해볼것.Project -> clean 하기 그후 이클립스 끄고 다시 켜기 2. 그래도 R파일이 생성되지 않으면 애초에 근원적인 문제로 돌아가야한다.R파일이 에러난 이유는 분명 res폴더에 잘못이 있는 것이다. res폴더에 있는 가장 대표적인 xml파일은 레이아웃과 스트링이 있다.이녀석들중에 내용에 이상이 있거나, xml파일명이 대문자가 들어가 있으면 에러가 날수 있다.이를 찾아서 고쳐야한다. 예를들어 저 같은 경우에는 집에 있는 pc와 노트북을 연동해서 프로젝트를 진행하다보니 복사, 붙여넣기를 해야하는 상황이 많았습니다. 그러다보니 이상하게 복사,붙여넣기가 된 경우가 생기고 그로인해 R에러가 생겼습니다. 예를들면 이런겁니다. string.xml에서 붉은색 글씨로 보이는 ?xd와 같은 이상.. 더보기
버전 업그레이드 에러 sdk 업데이트를 진행하다보면 새로운 버젼이 있다고 깔라고 할 때가 있다. 이때 sdk를 눌러 새로운 패키지를 받아 업데이트를 하면 아래와 같은 에러가 나온다. 체크 포 업데이트를 눌러서 설치를 했는데도 계속 이 에러가 뜬다. 이때 해결방법을 설명하겠다. 깔려 있는 곳에 복사 붙여넣기 후 다시 sdk manager 실행 인스톨 패키지가 있으면 실행 그러면 체크 포 업데이트 누르란 메시지 나온다. 들어가서 업데이트.. 노노 이거 아님헬프에 뉴 소프트웨어 설치..그리고 adt 있는 그 사이트 가서 하는 방식으로 툴 다운 받기 그래도 안되면 이클립스에서 디비랑 개발툴 업데이트 그래도 안되서 따로 따로 업데이트.. 그래도 안되서 안드로이드 사이트에서 번들받음.그래도 안됨...좆됐다... 더보기