C#/Problems 16

안드로이드 디바이스에서 뒤로가기 2번 누르면 종료하기

인터넷에 찾아서 나온 코드들은 한번 누르면 입력이 여러번 돼서 아예 안됨 입력을 한번 받고 코루틴에서 한번 기다렸다가 bool 값을 바꿔서 연속되는 입력을 잠시 막아버리고 입력을 다시 받아야 제대로 작동됨 0.3초 안에 뒤로가기를 두번 연속해서 눌러야 어플을 종료하게 함 using Photon.Pun; using System.Collections; using System.Collections.Generic; using System.Runtime.CompilerServices; using UnityEngine; public class BackButtonManager : MonoBehaviour { private bool isClick; private int count; void Awake() { DontD..

C#/Problems 2020.08.17

빌드에러] 1 exception was raised by wokers: See the Console for details

빌드할 때 이게 뜨면 해결법 1. 키값을 제대로 입력했는지 확인한다. 2. 빌드 경로에 한글이 없는지 확인한다. 3. package name 이 똑바른지 확인 4. package name이 firebase name과 같은 지 확인 5. java 버전이 8이상인지 확인 - 유니티 2019. 02 버전부터 jdk 버전 이슈가 있음 - 높으면 다시 다운그레이드 해야함 6. Asset -> External Dependency Manager -> Android Resolver -> setting에 Enable auto-resolution , install android packages 체크 해제 하고 ok Asset -> External Dependency Manager ->Resoulve 이러면 빌드됨 [Uni..

C#/Problems 2020.08.09

Unity Text 오브젝트 색상 Hex 값으로 변경하기

HexaDecimal 색상값을 Text 오브젝트에 적용하기(글자색 변경하기) Color color; ColorUtility.TryParseHtmlString("#FF3737", out color); this.amountText.color = color; 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 this.amountText.text = this.rewardAmount.ToString(); Color color; if (data.type==0) { ColorUtility.TryParseHtmlString("#FF3737", out color); this.amountText.color = color; } else if (data.type == 1) { ColorUtili..

C#/Problems 2020.06.12

Normal Mapping / Shader / Material - parameter

Texture는 이미지 파일인데 텍스쳐가 3D오브젝트에 적용되기 위해서는 Material이 필요함 Material은 여러가지 Texture 파일을 조합하고 Shader를 비롯한 여러가지 설정을 적용시켜서 오브젝트의 다양한 질감을 나타내는 데 사용됨. 텍스쳐 파일을 가지고 Material을 직접 만들어서 씌워보면서 shader를 적용시켜봄 불러온 텍스쳐는 모두 normal map으로 한번 변환해봄 *normal mapping은 법선 벡터(normal vector)를 이용해서 low poly인 모델에서 사실적인 입체감과 질감을 구현하는 일종의 눈속임 기법이라고 한다. ->normal maaping기술을 사용하면 폴리곤으로 질감과 굴곡을 모두 나타내 것보다 훨씬 적은 연산과 리소스로 많은 폴리곤 수를 가진 오..

C#/Problems 2020.06.04

TexturePacker 로 이미지 가져오기 / 배경 이동시키기 / Draw Mode Tiled

1. TexturePacker - 이미지를 atlas 처럼 Sprite Pack으로 만들어줌 - 이미지 용량 낭비를 줄일 수 있음 - 유니티 asset store에서 TexturePacker를 검색해서 plugin을 설치해줘야함 - TexturePacker에서 advance setting에서 데이터 이름과 저장될 경로를 지정하는데 unity asset폴더로 지정하면 이미지를 뽑자마자 바로 Asset에 데이터파일과 import되고 자동으로 sheet에 있는 이미지들이 하나하나 슬라이스 돼서 나눠짐. TexturePacker - Create Sprite Sheets for your game! TexturePacker creates sprite sheets for your game engine www.code..

C#/Problems 2020.05.28

8. ObjectPool 이용해서 데이터 꺼내기 / Scene사이에 데이터 넘기기

1. 문제 SceneManager.sceneLoaded += (Scene arg0, LoadSceneMode arg1) => { }; SceneManager.sceneLoaded 를 사용하면 다음 Scene에 넘길 값이 null 이 되어서 제대로 값이 전달되지 않는다. 다음 Scene에서 다시 ObjectPool을 생성해서 불필요하게 이미 생성되어있는 객체들을 다시 로드하고 생성했다. 2. 해결방법 DontDestroyOnLoad(ObjectPool.GetInstance()); 다음 Scene으로 넘어갈 때 파괴되지 않는 것을 ObjectPool의 인스턴스로 설정하고 데이터들이 전달되기 전에(UIStudo씬이 파괴되기 전에) ObjectPool에서 꺼내쓴 모델 객체들을 반납한다(다시 ObjectPool에..

C#/Problems 2020.05.17

7. Unity 애니매이션 딜레이 실행 연습 ( attack -> idle -> attack..->idle) , 대리자를 이용해서 이펙트 생성하기

1. 문제 한번 공격하면 Idle 애니메이션을 실행하지 않거나, 딜레이 없이 연속으로 공격하거나 아무것도 안함.. 몬스터를 공격할 경우 체력이나 카운터로 숫자를 표현할 경우, 한번 공격에 연속으로 숫자가 변경됨. 2. 해결방법 한번 공격하고 다시 공격하는 부분에서 새로운 공격판정을 하는 bool 변수를 새로 만든다. (bool isAttackAgain) 다시 공격하는 부분에서 딜레이 시간을 나타내는 float 변수를 증가시키고 원하는 딜레이 시간보다 길어졌을 경우에 다시 공격 메서드를 호출한다. 1. App 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 ..

C#/Problems 2020.05.15