목록창고/게임 개발 [Hidden] (86)
도드넷

C#에서 소숫점만 표시하기 float . 이후 소수점만 표시하는 방법? C# 에서 소숫점을 지닌 float 값이 있다고 하자. 32.563 여기서 . 이후 값인 소숫점만 표시하고 싶다면? 방법 : 값에서 정수 값을 빼준다. ㅋㅋㅋㅋㅋ 의외로 간단 뜬금없지만 이게 왜 필요하게 됬냐면 유니티에서 애니메이션 진행상황을 가져올 경우 (MyAnimator.GetCurrentAnimatorStateInfo(1).normalizedTime)로 normalizedtime 으로 가져오는데 여기서 애니메이션이 [반복] 되는 경우 normalizedtimed이 2회차인데도 0으로 리셋되지 않고 계속 1넘어서 증가하게 되는데 (?!) 이때 위와같은 방법으로 정수값을 빼주면 재대로된 normalizedtime 값인 0~1 사이..

유니티 모바일(안드로이드) 최적화의 정석. 개발하면서 깨달은 유니티 (Unity) 모바일 게임 안드로이드 환경에서 매우 부드럽게 60프레임으로 꿀바른듯 잘 돌아가게 하는 팁팁 모음. #0 낮은 해상도 & 60 프레임 설정 사용 - 가장 멍청하고 간단하게 할 수 있는 방법이다. 게임 자체 해상도를 360p 로 낮추고 프레임 목표를 60으로 둔다. - Screen.SetResolution(640, 360, true); - Application.targetFrameRate = 60; - 기본은 720p 로 Screen.SetResolution(1280, 720, true); 로 설정하면 된다. #1 Batches (Draw Call)을 줄이자. - 40~50 넘어가는 순간 당신은 무언가 크게 잘못하고 있으며 ..

오랜만에 non-dev 빌드로 테스트 해보려고 빌드했는데 다음과 같은 유니티(Unity) 오류가 발생했다. (그것도 기나긴 빌드시간 다 기다리고 끝에 발생한다!! 암헞ㄱ후ㅗㅕㅓㄷ악) Gradle Error : MinSDK in Manifest The minSdk Version can not be specified in the Androidmanifest.xml file. WHAT? 뭔 개소리인지 "You have to remove it" 이딴 개소리하고 Troubleshoot 눌러도 아무것도 안된다. WTF;; [ 유니티 빌드 오류 MinSDK 해결법 ] 일단 애셋창에서 AndroidManifest를 검색한다. (윈도우에서 검색하면 엄청나게 많은 양의 쓸대없는 AndroidManifest가 뜬다 -_-;..

유니티 인스펙터 초기화, 스크립트 초기값으로 되돌리기. 유니티에서 인스펙터를 초기화 하고 싶으면 어떻게 해야할까? 가장 원시적인 방법으로는 음... 그냥 스크립트를 지우고 다시 추가하는 방법이다. 두번째는 내장된 "리셋" 기능을 사용하는 것이다. 스크립트의 이름부분을 우클릭하면 Reset 옵션이 나오고 선택하면 스크립트가 전부 초기값으로 되돌아간다. 세번째는 고집스럽게 Editor-GUI 스크립트를 짜서 "원버튼 리셋 버튼"을 만들어서 원클릭에 초기화하는 것이다. 스크립트를 통해 유니티 인스펙터를 초기화 하려면 다음과 같은 방법을 쓰면 간단하다. 새 컴포넌트를 추가하고 원래 있던것을 지우는 방법을 쓰고 있다. (똑같은 효과)

유니티 에셋 저장, 스크립트에 의한 변경을 저장하는 방법. (feat. Scriptable Object) 상황은 이렇다. 게임내에는 수 많은 설명, 텍스트 데이터가 있다. (현재 프로젝트의 경우 대략 2,000개) 예를 들어 [암살자] 특성/퍽은 후방 공격시 적의 잃어버린 체력의 15%에 해당하는 추가 피해를 입힘. (목표당 쿨다운 6초) 이라는 설명이 있는데. 여기서 용어 [쿨다운]을 [재사용 대기시간]으로 바꾸고 싶다. (ㅠㅠ 넘 영어 게임만해서 전부 [쿨다운]이라는 용어를 써버렸다. 한국에서는 [쿨타임]이 더 유명하고 재대로된 한글 번역은 재사용 대기시간인데 아무 생각없이 쿨다운이라는 용어로 게임 전체를 만들었다.) 그래서 모든 텍스트 데이터를 불러온후 replace 함수를 이용한 자동 바꾸기 스크..

루프 사운드 만드는 방법. 반복되는 음, 사운드를 만드는 방법. 효과음중에 반복되는 사운드가 필요할때가 있다. 예를 들어 작동중인 엔진이라던가 모닥불 혹은 엠비언트 환경 바람 소리등이다. 반복형 음원이 아닌데 강제로 단순 어플리케이션에서 Loop를 체크하면 어색하거나 끊어지는 느낌이난다. 이런 소리들을 자연스럽게 그리고 부드럽게 반복하려면 어떻게 해야할까? 1. Audacity 라는 좋은 음원 편집 프로그램 (무료) 을 설치한다. 링크 : https://dodnet.tistory.com/4354 2. 이제 루프, 반복 음원으로 만들고싶은 음원을 불러온다. 3. 음원에서 반복하고 싶은 부분만 잘라낸다. (드래그, (Ctrl + X) 4. 파일 > 새 창으로 새로운 창을 열고 Ctrl + V 붙여넣기를 한다..
포토샵으로 태양빛 렌즈 이펙트 섬광 투명 PNG 만들기. 겜만들다가 투명한 Transparent 한 태양빛 랜즈 플레어 섬광 효과가 필요해서 구글링하는데 온갖 거지같은 이펙트를 돈받고 팔더라. 사실 섬광이펙트는 어도비 포토샵으로 즉시 구현이 가능하다. 엌 넘이뻐서 심쿵함 (사랑해요 루나 렌더 > 렌즈 플레어 를 선택하면 즉시 적용가능하다. 하지만 위 스샷처럼 게임제작이나 제3 컨텐츠에 유동적으로/유연하게 사용하려면 투명한 태양빛 렌즈 플레어 섬광 투명 PNG 리소스가 있으면 매우 좋다. 어도비 포토샵에 내장되어 있는걸 해적질한 이미지를 저작권 딱지 붙여서 10달러 20달러 주고 팔고있음ㅋㅋㅋㅋㅋㅋㄹㅇ븅신들 아티스트들을 개븅신호구로아나ㅋㅋㅋㅋㅋㅋㅋ압축파일에 업로드한것 처럼 직접 만들고 싶으면 검은 바탕에 ..
카메라 위치에 따른 유니티 파티클 (Unity Particle) 문제점 해결법 카메라가 가까워 졌을때 파티클이 사라지거나 안보일때. 실게임 테스트, 에디터에서 카메라 위치에 따라서 유니티 파티클이 사라지거나 재대로된 위치나 크기로 보여지지 않는 경우 해결법입니다. 카메라를 가까히 가져갔을때 유니티 파티클이 재대로된 크기나 위치에 표시되지 않으면 파티클 컴포넌트 Particle System 맨아래 설정에서 Max Particle Size를 99로 설정해보세요! :D
유니티 C# 딕셔너리 저장? 유니티에서 Dictionary 를 JSON Serialize 하는 방법? List를 Dictionary로 만드는 방법? 일단 확실히 해두어야 할점은 Dictionary 타입은 유니티의 JSON Serialization 을 지원하지 않는다. 이것은 유니티 에디터 상에서 Dictionary 타입의 변수를 만들어도 인스펙터에서 볼 수 없는 이유와 같다. 고로, 저장하려는 데이터 객체에 절대로 Dictionary 를 써서는 안된다. Dictionary는 Serializable 타입이 아니다! 하지만 Dictionary 는 매우 빠른 속도와 편의성을 제공한다. 매번 for 문을 돌려서 아이디 string 을 대조하는건 매우 느리며 비효율적이다. 그럼 어떻게 Dictionary 타입을 ..
유니티 Assertion failed on expression 해결하는 법. Assertion failed on expression: 'm_CurrentHiddenGameObjects->find(gameObject.GetInstanceID()) == m_CurrentHiddenGameObjects->end()' 라는 오류가 발생할때 해결법. 뜬금없이 Assertion failed on expression 오류와 함께 내용이 CurrentHiddenGameObject 와 관련된 것이면 DontDestroyOnLoad(gameObject); 스크립팅이 부착된 오브젝트 혹은 씬이 하이어라키상 좌측끝부분에 눈동자 모양이 켜져있는지 확인하면 됩니다."숨김" 설정이 되어 있으면 DontDestroyOnLoad 에서..