일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- nodejs
- Spring Boot
- css framework
- server
- --watch
- springboot
- draganddrop
- OverTheWire
- Camera Movement
- Google Developer API
- SDK upgrade
- express
- react
- docker
- mongoDB
- linux
- Camera Zoom
- screencapture
- Digital Ocean
- critical rendering path
- Google Refund
- spread 연산자
- Unity Editor
- Unity IAP
- rpg server
- Git
- unity
- java
- Packet Network
- MySQL
- Today
- Total
목록Unity (22)
우당탕탕 개발일지

목표파일이름을 1_이름 포맷으로 저장하면, ID = 1로 자동으로 설정한다. 파일 이름을 수정할 경우 ID도 그에 맞게 변경된다.새로운 ScriptableObject를 생성할 때, 현재 정의되어있는ID들중 가장 큰 id + 1로 id를 새로 설정한다. GoldStatData에 적용을 해볼것이다. 원래 ScripatbleObject에 CreateAssetMenu라는 키워드를 붙여서 새로운 오브젝트를 생성할 수 있게 했었는데, 이부분을 제거해야한다. CustoemEditor 부분에서 구현해줄 예정이다.public class GoldStatData : ScriptableObject{ public int id;} GoldStatDataEditor 주요 코드using System;using System.Co..
enum 인 SkillElement 와, Class인 ElementBonus에 대해 다음과같이 dictionary로 선언된 변수를 커스텀에디터에서 설정하고싶었다. 그러나 딕셔너리는 커스텀에디터에서 자동으로 직렬화를 해주지 않으므로, 직접 직렬화를 해줘야 한다. private Dictionary> skillBonuses = new Dictionary>(); [System.Serializable]public class ElementBonus{ public int skillCount; public float bonus;}오늘은 이 dictionary를 커스텀에디터에서 수정하고, 직렬화/역직렬화 함수를 통해 데이터가 손실되지 않는 방법을 알아보겠다. 1. 두 개의 List 생성하기 에디터는 dict..
여러가지 성장 시스템에서 강화할 수 있는 내용을 다음처럼 BattleUpgradeEnum으로 한곳에 통합관리하도록 만들었다. public enum BattleUpgradeEnum{ //스탯강화 HpUp_Basic = 101, //... //스킬강화 SkillDamageIncrease = 1001, //스킬 데미지증가 DecreaseCoolTs = 1002, //쿨타임 감소 IncreaseBuffValue = 1003, //버프랑증가 //버프스킬 종류 Buff_PowerUp = 2001, //최종 공격력 증가} 커스텀에디터에서 강화내용을 선택할 수 있게 하는데, 각 분야에 맞는 타입으로 제한하도록 구현해보자.우선은 제한을 두기 위해 Descriptio..
scriptableObject를 사용하면서, SkillData를 상속받은 여러 종류의 스킬들을 정의했다(strikeSkill , rangeSkill, buffSkill등등..)나는 addressable을 로드하기때문에 각 scriptableObject의 addressable을 활성화하고 라벨을 설정해야하는데, 이걸 자동으로 설정하게끔 만들어보았다. OnEnable() 과 OnInspectorGUI() 호출시, addressable이 활성화되지않았다면 활성화 후 , 내가원하는 label을 지정해준다.라벨 설정할때, entry.label.clear()을 해주는데, 종종 동일한라벨이 여러개 설정되는 버그가 있어서 clear후 새로 넣어주는 방법으로 변경했다. using System;using System.Co..

구글에서 다음과 같은 경고가 발생해서, proguard를 활성화하려고 했더니이 App Bundle 유형과 연결된 가독화 파일이 없습니다.난독화된 코드(R8/proguard)를 사용하는 경우 가독화 파일을 업로드하면 비정상 종료 및 ANR을 더 쉽게 분석하고 디버그할 수 있습니다. R8/proguard를 사용하면 앱 크기를 줄이는 데 도움이 됩니다 1- ProjectSettings > Minify 에 Release 를 활성화한다. 여기까지 하고 빌드를 하니 위 에러가 발생했다. (원인)2- Build 란에 custom proguard File 을 활성화 한 뒤 proguard-user.text 에 다음과 같이 적어넣는다.-keep class com.google.android.gms.** { *; }-do..
Unity 에서 제공하는 라이브러리인 ScreenCapture를 이용해 스크린샷을 찍고, 이를 저장하는 기능을 만들어보자. ScreenCapture의 공식 문서는 아래에 있다.https://docs.unity3d.com/ScriptReference/ScreenCapture.CaptureScreenshot.html Unity - Scripting API: ScreenCapture.CaptureScreenshotIf the screenshot exists already, ScreenCapture.CaptureScreenshot overwrites it with a new screenshot. Add .png to the end of filename to save the screenshot as a .png ..
Unity에서 제공하는 Screen Capture를 이용해 스크린샷을 찍고, Native Gallery 를 이용하여 갤러리에 저장한다. 순서는 다음과 같다.1. 프레임 준비를 위해 Coroutine을 이용해 waitforEndofFrame()을 호출2. 파일이름을 지정3. 찰칵4. 갤러리 저장을 위해 퍼미션 체크5. 갤러리저장 1. 프레임 준비를 위해 Coroutine을 이용해 waitforEndofFrame()을 호출 public void CaptureScreen() { StartCoroutine(MakeScreenShot()); } private IEnumerator MakeScreenShot() { yield return new WaitForEn..

파일은 업로드한다. 너무길기때문엥.. 1. CSV파일 제작 csv파일은 다음과 같은 형식으로 작성한다. 맨 윗 행은 설명을위해 비워놓았으며, CSVReader에도 이가 반영되어있다. 첫번째 행부터 변수이름을 입력할 수 있게끔 param에 변수가 저장된 행 번호를 입력하게끔 되어있다. (default 는 2번째 행이다.) 2. 클래스정의 클래스 정의는 다음과 같이 선언한다. (위 이미지를 예시로 들겠다.) csv파일에서 정의한 변수의 이름과 대소문자를 모두 동일하게 맞춰야한다. 3. 파일 읽기(Addressable) csv 파일을 프로젝트 안에 넣고, 읽기작업을 한다. Unity 에서 제공하는 Addressable을 이용하여 로드하고있다 . csv파싱은 보통 한번 읽은 뒤 다시 파일을 열 일이 없기 때문에..