전체 글215 유니티 Prefab(프리팹)에 대해. Prefab은 오브젝트를 Assets파일로 가져오면 생성되는 오브젝트의 복사본이다. 이걸 왜쓰냐하면, 똑같은 오브젝트를 굳이 여러개 만들 필요가 없고, 아웃렛 연결(인스펙터에서 연결) 할때 삭제되는 오브젝트와 연결하면 오류가 나기 때문에, 하이어리키에 존재할 뿐만 아니라 에셋에 존재해서 게임에서 삭제되어도 연결할 수 있는 오브젝트가 필요하기 때문이다. Prefab의 예시를 들어보자면 카트라이더에 있는 아이템전의 물음표로 되어있는 아이템, 총의 총알등이 있겠다. 이들을 설치해야 하는 상황에 하나씩 설치하면 매우 귀찮겠지만 프리팹화 시킨다면 그냥 드래그만 하면 끝이다. 또한 스크립트안에서 물체를 복사할때도 매우 유용하게 사용할수있다. 초보때 이걸로 몇시간을 날린 기억이 있어 소개해보았다. 도움이 되었길 바라.. 게임 개발/유니티 2022. 7. 14. 유니티 빛을 여러개 설치했는데 밝아지지 않을때. 유니티에서 빛을 여러개 설치하였지만 정작 게임을 실행해보면 전혀 밝아지지 않는 문제가 생겼다. 찾아본 결과, 설정에서 최대 조명개수를 설정해줄 수 있는데, 기본값이 정해져있어 개수에 제한이 있는것이였다. 그러므로 설정에서 직접 늘려줘야 하는데, Edit -> Project Settings -> Quality -> Pixel Light Count 늘려주면 된다. 이렇게 빛의 개수제한을 풀어 내가 원하는 개수의 조명을 설치할 수 있다. 도움이 되었길 바라며, 끝. 게임 개발/유니티 2022. 7. 14. 유니티 There are 2 audio listeners in the scene. Please ensure there is always exactly one audio listener in the scene. 오디오 리스너가 두개 있다는 경고인데, 오디오 리스너는 쉽게 얘기하자면 사람의 귀이다. 기본적으로 카메라에는 오디오리스너 컴포넌트가 달려있는데, 카메라가 2개 존재하거나, 오디오리스너가 2개가 존재하는 상황에 발생한다. 그러므로 카메라를 1개로 만들거나, 한 카메라의 오디오리스너 컴포넌트를 삭제하여 해결하면 된다. 삭제방법: 사람 귀는 두개이지만 컴퓨터는 아닌가보다. 유니티 협력 링크(어필리에이트) 유니티 플러스 구매하기 유니티 프로 구매하기 유니티에게 유니티 배우기 (유료 강좌) 도움이 되었길 바라며, 끝. 게임 개발/유니티 2022. 7. 14. 유니티 부모를 스크립트로 정하는 방법. 유니티에서 부모, 자식관계를 바꾸고 싶을 때가 있다. 필자는 큐브를 만들때 한 면을 그룹화 시켜서 돌리고 싶어 이 기능을 알아보게 되었다. 먼저, 부모나 자식과 같은 기능을 담당하는 클래스는 transform이다. 그래서 transform.parent를 사용해야한다. transform.parent = gameObject.transform 이 코드는 스크립트가 있는 오브젝트가 게임오브젝트의 자식으로 들어가는 코드이다. 부모를 저걸로 정해준거기 때문에 본인은 자식이 된다. transform.GetChild(index)등으로 자식을 가져올수도있다. 부모와 자식간의 스크립트가 필요할때 이 기능을 알아두면 좋을것이다. 도움이 되었길 바라며, 끝. 게임 개발/유니티 2022. 7. 14. 유니티 스크립트로 씬을 바꿔 보았을때 어두워보이는 문제 LoadScene을 이용하여 다음씬으로 넘어갔을때 거의 모든 경우에 다음 씬이 어두워 보이는 문제가 생긴다. 그럴때는 Window -> Rendering -> lighting으로 간 후, 및쪽에 Generate Lighting 버튼을 클릭하면 문제가 해결된다. 씬이 여러개라면 여러 씬에 모두 저 버튼을 눌러주어야 한다. 저 버튼은 조명을 설정된 값대로 적용하는 버튼으로 빡센 설정(렌더링 설정)을 넣고 Auto Generate를 체크하면 컴퓨터가 터지려하는 경험을 할 수 있다. 이상 도움이 되었길 바라며, 끝. 게임 개발/유니티 2022. 7. 14. 유니티 C# 배열, 리스트 만드는법 유니티 배열 만드는법. public/private type(string)[ ] Arr = new type[배열크기]; ex: public string[ ] Arr = new string[5]; -> 문자열타입의 5칸짜리 배열, Arr를 만든다(public) 원래 이게 정석이지만 public string[ ] Arr; 이렇게 선언할수도 있다. 배열말고 List도 좋은 기능이 많은데, List는 List name = new List(); 로 선언한다. Ex) List names = new List(); 안에 값은 앞뒤 같아야한다. 보통 이렇게 작성하는것이 정석이지만 C#에는 var이라는 타입이 있다. var은 아무 값이나 정의해주면 그 값의 타입에 따라 자동으로 그 타입이 된다. 따라서 어떤 변수에나 var.. 게임 개발/C# 2022. 7. 14. .Rotate 관련이 안된다 / 이해할수없다 회전 관련 이벤트가 안되거나 이해할수없는 값으로 회전할때는 아마도 쿼터니언, 오일러의 개념을 모르고 둘다 같게 생각하고 값을 줬기 때문일것이다. 쿼터니언은 인자가 4개로, 우리가 보통 사용하는 xyz로 각도를 나타내는법 즉, 오일러 각은 깊게 들어가면 사용에 문제가 있는 반면 쿼터니언 방법으로 각도를 나타낸다면 보다 빠르고, 확실하고, 어떠한 문제도 없이 나타낼수 있다. 하지만 사람이 이해하기엔 시간이 걸리기 때문에 유니티 상에선 사람이 이해하기 쉽도록 오일러 각도로 표기 해주고, 인스펙터에 오일러 각도로 표기를 해 준다. 하지만 오일러 각은 분명 컴퓨터가 사용하기엔 문제가 있기에 컴퓨터는 오일러 각을 내부에서 쿼터니언으로 변환해서 사용한다. 그렇기에 코드에서도 쿼터니언이 가장 기본으로 깔려있다. 결론적.. 게임 개발/C# 2022. 7. 14. 유니티) 내 프로젝트를 다른사람에게 공유, 보내주는 법. 무료 질문 카톡방을 운영해오며 사진만으로 해결해주기 어려운 상황일 땐 늘 그 사람의 프로젝트를 받아왔다. 그 경험들을 토대로, 이번에는 유니티에서 프로젝트를 공유하는 법을 글로 적어보겠다. 기본적으로, 프로젝트 전체를 보내고 싶을 때는 Assets 파일에 우클릭을 하여 메뉴 창을 열고, 저 메뉴 중 Export Package를 선택해서 . UnityPackage 확장자로 내보내서 다운로드하게 해 줄 수 있다. 하지만 가끔 프로젝트 이름이 한글이거나 등등 다른 이유로 프로젝트 전체를 보내는 것에 오류가 있을 때는 나는 게임 씬만 우클릭하여 Export Package 해달라고 하여 받아오는 편이다. 씬만 내보내도 씬에 필요한 모든 에셋이 자동으로 함께 받아와 지고, 전체를 보내는 것보다 씬만 보내면 원하는 .. 게임 개발/유니티 2022. 7. 14. NullReferenceException: Object reference not set to an instance of an ....... 어떤 변수에 값이 들어가지 않아 코드가 돌아가는중 오류가 난것이며, 초보때 흔히 하는 실수로는 Ex) public GameObject Player; 라고 써놓고 연결을 안하는 것이다 자신이 아닐지 생각해보자 이런 상황이 생기면 저 오류가 뜰 수 있다. 꼭 public이 아니더라도 그냥 GameObejct player; 만하고 등호로 오브젝트를 넣어주지 않았을때도 생길 수 있다. 고치면 GameObject player = ......; 이 될 수 있다. 유니티 협력 글(어필리에이트) 유니티 플러스 구매하기 유니티 프로 구매하기 유니티에게 유니티 배우기 (유료 강좌) 이상으로 도움이 되었길 바라며, 끝. 게임 개발/유니티 2022. 7. 14. 유니티 인스펙터에서 드래그로 값을 설정하기, 슬라이더 만들기 [Range(A, B)] public, private로 인스펙터에 노출될지 말지 결정할수있지만, 드래그로 쉽게 수를 오르락 내리락하며 정하고싶을때는 [Range(0, 5)] public int Type; 이렇게 대괄호안에 Range(최소값, 최댓값) 으로 써고 그 밑에 원래 쓰던대로 public 타입의 변수를 생성하면 우리가 원하는대로 드래그하여 값을 조정할 수 있게 된다. 이영상은 유니티 인스펙터에서 실행되는 모습이다. 이처럼 게임을 만들때 조금더 자유롭게 값을 변경할 수 있다는 장점이 있기 때문에 좀더 있어보이고 싶거나 다른사람이 이 게임을 만질때 허용가능한 값의 범위를 조절하고 싶다면 이 기능을 쓰는것도 좋아보인다. 도움이 되었길 바라며, 끝. 게임 개발/유니티 2022. 7. 14. 유니티 가속도를 제한하는 방법 오늘은 유니티에서 가속도를 제한하는 코드를 살펴보겠다. if(Mathf.Abs(rigid.velocity.x) > 5) { rigid.velocity = new Vector2(Mathf.Sign(rigid.velocity.x) * 5, rigid.velocity.y); } 필자가 만든 코드는 이러한데, 본격적으로 설명 해보겠다. Mathf.Abs 는 절댓값을 구하는 함수이다. 그러므로 rigid.velocity.x(양옆으로 이동하는것에대한 가속도값)이 음수가되든 양수가 되든 다 양수로 묶어서 5 이상이면 이라는 조건을 써 넣었다 if(Mathf.Abs(rigid.velocity.x) > 5) // 가속도가 5 이상이라면 rigid.velocity = new Vector2(Mathf.Sign(rigid.v.. 게임 개발/C# 2022. 7. 9. 이전 1 ··· 15 16 17 18 다음 💲 추천 글