반응형 분류 전체보기230 삼각비의 값 계산하는 방법 언제부터인가 사람이 삼각비를 계산할 수는 없는걸까? 라는 궁금증이 생기기 시작했다. 예전에는 파이값에 이런 의문을 품었었다. 하지만 파이는 원 외, 내부로 도형을 그려 근삿값을 찾는 방법이 있어 사칙연산만으로 구할 수 있다는 점이 내가 이해하기에 충분했지만 삼각비는 일단 기본적으로 어떤 존재하는 값이 아니라 비를 분수로 나타낸것에 그치기 때문에 상식적으로 원하는 각도의 삼각형을 그린다음에, 거리를 측정하여 구할수 밖에 없다는 결론을 내렸다. 그런데 잘 생각해보면 sin, cos , tan계산기는 무슨 원리로 작동할까? 컴퓨터는 사칙연산만을 할줄 아는데, 결국 사칙연산으로 바꿀수 있다는 말이 아닐까? 라는 생각이 들었다. 그래서 찾아본결과 테일러 급수 라는 원리에 의한 삼각비를 구하는 사칙연산 공식이 있다.. 수학 2022. 10. 6. 유니티 Start()문, Update() , Awake() , FixedUpdate()문 유니티에서 스크립트(C#)을 만들고 파일을 열어보면 이렇게 되어 있을것이다. 유니티를 처음 시작하는 사람이라면 이게 뭐하는 것인지 모를것이다. 그래서 초보자의 입장으로 이 두 기초 함수들에 대해 알아보겠다. Start () 일단 Start 문은 직역하면 시작하다 인데, 말그대로 게임이 처음 시작되었을때 1번 실행한다고 보면 된다. 줄여보자면 최초1회실행 이라고 보면 되겠다. Update () 다음으로 Update문이다. 게임을 만들다 보면 대부분의 움직임 코드가 Update문안에 들어갈 것이다. 그 이유는 Update문이 1초에 몇십번씩 코드를 반복해서 실행하는 기능을 가즈고 있기 때문이다. 몇십번인지를 결정하는건 컴퓨터의 성능이다. 게임을 한 사람들이라면 들어봤을 만한 "프레임"이라는 개념이 "업데이트.. 게임 개발/유니티C# 2022. 10. 5. 유니티 머테리얼(머티리얼) 삭제하는법. 유니티에서 머테리얼을 넣고 싶다면 십중팔구가 드래그&드롭으로 추가할것이다. 이 방식은 "컴포넌트"도 똑같은 방식으로 추가된다. 그래서 그런지 "머테리얼"을 컴포넌트 처럼 무의식중에 알고있는 경우가 많은 것으로 예상된다. (필자또한 그랬다.) 하지만 이 얘기를 하는걸 보면 알다싶이 머테리얼은 컴포넌트가 아니기에 원래 같았으면 점 3개를 누르면 떴던 메뉴에 있던 Remove Component 가 있을 수가 없는것이다. 머테리얼을 추가 할 수 없는 상황에 처해본적이 있는가? Create Empty를 누르고 머테리얼을 추가하려고 하면 드래그&드롭이 안되게 된다. 그 이유가 무엇일까? 우리는 조금 원시적인 것으로 돌아가야 한다. 머테리얼은 오브젝트에 조금 색을 더하거나 하는등 "렌더링"(카메라에 그려지는 것) 을.. 게임 개발/유니티 2022. 10. 5. 유니티 가비지 컬렉터(GC) (실행방법, 하는 역할, 사용처) 가비지 컬렉터는 개발자의 면접 질문으로도 많이 나오는 질문이며, 코딩을 오래했다면 어디선가는 한번쯤 들어봤을만한 말이다. 유니티 에서의 가비지 컬렉터는 더이상 필요없어진 오브젝트같은 필요없는 메모리를 지우는걸 말한다. 그렇기에 가장 대표적인 사용예는 Destroy로 오브젝트를 지운 직후 가비지 컬렉터 기능을 실행하여 메모리를 줄이는것이다. 가비지 컬렉터를 쓰는 방법은 System.GC.Collect(); 로 매우 간단하다. 우리는 없애진 오브젝트에 쓰려하기 때문에 Destory(gameObject); 밑에(이 줄)에 쓰면 좋겠지만 오브젝트가 없어지면 그 밑 코드는 실행할수 없기 때문에 유니티의 OnDestroy() 함수안에 작성해주면 오브젝트가 파괴되었을때 실행하게 되어 원하는 결과로 나오게 되는걸 확인.. 게임 개발/유니티C# 2022. 10. 2. 유니티 오브젝트 떠있게 하기, 떠있는 물체 낮추기 유니티를 하다보면 애니메이션 도중보면 물체가 떠있게 보이거나 그냥 땅 위에 올려두면 살짝 떠있어 보이는 문제가 종종 발생한다. 필자가 운영하는 유니티 무료 질문방에 이런 문제가 발생한 분이 있어서 글로 쓴다. 이 문제가 발생한 사진을 가져와 보겠다. 항상 그렇듯 2D랑 3D가 나눠지지만 해결법은 똑같기에 2D 기준으로 고쳐보겠다. 이건 리지드 바디(중력)을 추가하고, 콜라이더도 추가한후 시작한 뒤 찍힌 사진이다. 사진도 완벽하게 잘라져있고, 콜라이더도 사진에맞게 설정되어있어 뜰거라고 상상하지 못했지만, 이론과 현실은 다르듯이 떠있는 모습을 볼 수 있다. 여기서 해결법은 콜라이더의 크기를 바꾸는것이다. 콜라이더란 물리적인 처리를 하는 부분을 말한다. 이 캐릭터의 콜라이더를 표시한 사진을 가져오겠다. 이 네.. 게임 개발/유니티 2022. 9. 30. 유니티 타일맵 콜라이더 씌우기 https://alpaca-code.tistory.com/86(이전 포스팅 링크) 유니티 2d게임 틀(칸) 만들기, 타일맵 만들기 2d게임을 보면 대부분의 게임에 칸 이라는 요소가 작용하는걸로 보인다. 거의 모든게임이지만 굳이 예시를 들자면 마리오가 있다. 오늘은 에디터에서 이 칸이라는 개념을 넣어주는 작업을 해보 alpaca-code.tistory.com 이전 타일맵에 대한 포스팅에서 타일맵을 만드는 과정을 올려봤는데, 생각해보니 콜라이더 씌우는법을 올리지 않아 따로 게시글을 만들어 보겠다. 방법은 생각보다 간단하다. 전편에서 만들었던 2D Object -> Tilemap -> Rectangular을 누르면 나오는 오브젝트인 Grid의 자식오브젝트에 Tilemap Collider 2D라는 컴포넌트를 추.. 게임 개발/유니티 2022. 9. 27. 유니티 2d게임 틀(칸) 만들기, 타일맵 만들기 2d게임을 보면 대부분의 게임에 칸이라는 요소가 작용하는 걸로 보인다. 거의 모든게임이지만 굳이 예시를 들자면 마리오가 있다. 오늘은 에디터에서 이 칸이라는 개념을 넣어주는 작업을 해보겠다 먼저 Tilemap이라는 이름의 폴더를 하나 만들어주자. 그 후 Window -> 2D -> Tile Palette로 가준다. 그러면 이런 창이 하나 생기게 된다. 여기서 저기 위에 보이는 Create New Palette버튼을 눌러준다. 이름을 적당히 짓고, Create버튼을 눌러준다(필자는 Main Palette로 해주었다) 그럼 폴더를 정하라는 창이 뜨게 되는데, 아까 만든 Tilemap 폴더를 선택해주자. 그러면 그 폴더안에 팔레트가 만들어진다. 그 후 원하는 지형 파일을 가져와준다. 필자는 Kenny라는 상업.. 게임 개발/유니티 2022. 9. 26. 유니티 PostProcessing(포스트 프로세싱) 기능 정리 - 2편 저번 편에는 포스트 프로세싱 세팅을 알아보았고, https://alpaca-code.tistory.com/84(저번 편) 유니티 카메라 기법(PostProcessing 포스트 프로세싱) - 1편 오늘은 유니티에서 카메라를 다루는 법을 이야기 해 보겠다. 게임을 만들때 굉장히 중요한 요소가 많은데, (예시 게임 퀄리티, 게임성, 오디오, 재미) 그 중 하나가 카메라 이다. 카메라는 플레이 alpaca-code.tistory.com 오늘은 세팅의 종류에 무엇이 있는지 알아봄으로써 자기 자신이 원하는 효과를 만들 수 있게 하는 게 목표이다. 이런 종류의 기능이 있다. 처음부터 설명하겠다. (안의 링크는 관련 문서이다.) Ambient Occlusion은 주름 구멍 교차점 및 서로 가까운 표면을 어둡게 한다고 .. 게임 개발/유니티 2022. 9. 26. 유니티 카메라 기법(PostProcessing 포스트 프로세싱) - 1편 오늘은 유니티에서 카메라를 다루는 법을 이야기 해 보겠다. 게임을 만들때 굉장히 중요한 요소가 많은데, (예시 게임 퀄리티, 게임성, 오디오, 재미) 그 중 하나가 카메라 이다. 카메라는 플레이어가 보는 화면이기 때문에 다양한 시각처리가 들어가면 퀄리티가 좋아보일 수 있다. 다시 말해 오늘은 시각적 요소를 추가하는 법을 다루는 것이다. 먼저, 언제나 그랬듯이 Window -> Package Manager로 들어가준다. 그리고 PostProcessing을 다운 받아준다. 안보인다면 맨 위에 저 탭을 클릭해서 Unity Registry로 바꿔준 후 찾아주면된다. 참고로 말해주자면 In Project 로 바꾸면 현재 나의 프로젝트에 다운받아져 있는 항목이 표시되고, My assets는 에셋스토어에서 다운받은 .. 게임 개발/유니티 2022. 9. 26. 유니티 두점사이의 길이 두점사이의 길이를 구하고 싶을때가 있다. 그럴땐 VectorN.magnitude를 사용하면된다. 이 기능의 원리는 두점사이의 가상의 직각삼각형을 그려 피타고라스 정리를 활용하여 빗변의 길이를 구하는데에 있다. 이런 두 점이 있다고 가정하자. 직각삼각형을 만들기 위해 (4,0)의 점을 추가해주고, 세 점을 이어 삼각형을 만들어주면, 이렇게 된다. 그러면 밑변의 길이는 4, 높이는 3이 된다. 이러면 피타고라스의 정리에 의해 a² + b² = c² (c가 빗변, a와b는 빗변이 아닌 두변) a = 3; b = 4; 이기에 풀어주면, 9 + 16 = c² c² = 25 c = ±5가 되는데, 변의 길이가 음수일순 없기에 c = 5로 두 점 사이의 길이는 5가 되는것이다. 그렇기에 (4,3) 의 벡터의 길이는 .. 게임 개발/유니티C# 2022. 9. 23. 유니티 C# Can't add script 오류해결 유니티로 젤다의 전설(야생의숨결)에 가디언이 플레이어를 조준하고, 쏘는거를 만들다가 이런 오류가 떴다. 사실 이 오류는 해결법이 굉장히 쉽고, 어떻게 해결하는지 이미 알고있었지만 쉽게 일어나는 오류인만큼 검색량도 많을것같아 올려본다. 이 오류는 유니티에서 지은 스크립트의 이름과 C#코드 내부의 클래스명이 다르면 일어난다. 이건 오류가 난 스크립트 사진인데, 유니티에서의 코드이름은 Error인데 반해, 코드안에서는 Erro인걸 볼 수 있다. 서로 이름이 다르기 때문에 저런 오류가 난것이다. 그러므로 해결방법은 코드 내부의 클래스명과 유니티에서의 C#스크립트 이름을 동일하게 해주면 된다. 버전 업데이트를 하면서 예전엔 안그랬었는데 요즘은 만들자마자 바로 넣어도 이런 오류가 가끔 난다. 그럴땐 그냥 몇초 기다.. 게임 개발/유니티C# 2022. 9. 23. 어떤 수의 음수제곱, 0제곱 제곱이란 어떤 수를 지수만큼 곱하는 행위를 말한다. 예를 들어 2²(2의 제곱) 은 2를 두 번 곱한다는 뜻으로 2 x 2 = 4가 된다. 그렇다면 2 ³(2의 세제곱)은 무엇일까? 그렇다. 2 x 2 x 2 = 8이다. 솔직히 더하기를 여러 번 한 걸 줄인 곱하기와 곱하기 여러 번 한 걸 줄인 제곱은 비슷한 개념으로 이해하기 쉽다. 그렇다면 2의 -1 제곱은 무엇일까? 상식적으로 2를 -1번 곱한 게 무엇인지 떠오르지 않는다. 그럼 일단 넘기고 다음으로 가보자. 2의 0 제곱은 무엇일까? 2를 0번 곱한 것? 0이 아닐까? 어찌 보면 상식적으로 0 같아 보이지만 사실과는 다르다. 이제부터 설명을 시작하겠다. 간단히 나타내 보면 이런 식이다. 생각을 해보자. 2의 1 제곱부터 시작해서 2 제곱으로 가려면.. 수학 2022. 9. 21. 이전 1 ··· 10 11 12 13 14 15 16 ··· 20 다음 💲 추천 글 반응형