반응형

프로그래밍 33

[구글 플레이 콘솔] '결제 프로필에 문제가 있음'과 앱 이전 과정

앱을 출시하고 수익이 난 상태인데 이런 알림이 떴다. 그리고 나는 저런 메일이 오지 않았다. 검색을 해보니 저 본인 확인을 할 때 여러 서류를 제출해야 하는데 이때 결제 프로필을 잘못 생성했다는 것을 깨달았다. 우리는 개인 사업자라 개인 계정으로 결제 프로필을 생성해야 하는데 기업 계정으로 만든 것이다.... 우리도 회사니까 기업인줄 알았지.... 암튼 결제 프로필은 수정이 안 된다. 구글에 물어보기도 하고 검색도 해봤는데 앱 이전 밖에 답이 없었다. 결제 프로필을 삭제하고 다시 만들면 되지 않나? 고 생각했지만 결제 프로필을 삭제하면 앱과 연결된 수익도 삭제된다. 결론은 새로운 구글 아이디를 만들고 그 아이디로 개발자 계정을 만들어 앱 이전을 하면 된다는 것이다. 이러면 개발자 계정 등록 수수료를 또 ..

프로그래밍/AOS 2024.02.06

[홍정모의 게임 만들기 연습 문제 패키지] 1.2 과제

class Homework1 : public Game2D { public: float time = 0; void update() override { setLineWidth(3.0f); // 태양 beginTransformation(); scale(0.4f, 0.4f); rotate(time * 90.0f); drawFilledStar(Colors::gold, 0.5f, 0.3f); endTransformation(); // 지구 rotate(time * 90.0f); translate(0.8f, 0.0f); scale(0.25f, 0.25f); drawFilledCircle(Colors::blue, 0.4f); // 달 rotate(time * 90.0f); translate(1.0f, 0.0f); dr..

[홍정모의 게임 만들기 연습 문제 패키지] 1.3 과제 1번

#pragma once #include "Game2D.h" using namespace std; namespace jm { class MyTank { public: vec2 center = vec2(0.0f, 0.0f); //vec2 direction = vec2(1.0f, 0.0f, 0.0f); void draw() { beginTransformation(); { translate(center); drawFilledBox(Colors::green, 0.25f, 0.1f); // body translate(-0.02f, 0.1f); drawFilledBox(Colors::blue, 0.15f, 0.09f); // turret translate(0.15f, 0.0f); drawFilledBox(Colors..

[유니티/C#] 여러 개의 오브젝트 풀링 구현하기 (Dictionary 사용)

던전에 사용할 총알을 오브젝트 풀링으로 구현하였다. 플레이어 총알과 몬스터 총알을 나누기 위해 만들었다. SerializeField인 ObjectPoolingPrefabs에 총알 프리팹을 넣어주면 프리팹 이름을 통해 오브젝트를 분류한다. 나는 싱글톤으로 DungeonManager를 생성해 그 안에 이 코드를 넣어주었다. Awake나 Start에 InitializeObject 함수를 넣어줘야 한다. [SerializeField] private GameObject[] ObjectPoolingPrefabs; private Dictionary poolingObjectPrefabs = new Dictionary(); private Dictionary poolingObjectQueues = new Dictionar..

[유니티/C#] 책 UI 만들기

위와 같은 책을 만들어보자. 구조는 이렇게 되어 있다. public class RecipePanel : MonoBehaviour { public List recipePages; // 페이지를 저장해둘 리스트 int pageIndex = 0; // 현재 페이지 인덱스 public GameObject frontPageButton; // 누르면 앞 페이지로 이동하는 버튼 (왼쪽) public GameObject backPageButton; // 누르면 뒤 페이지로 이동하는 버튼 (오른쪽) public GameObject pages; // 페이지를 담아둘 부모 오브젝트 public GameObject pagePrefab; // 페이지 프리팹 // 레시피북을 여는 버튼을 눌렀을 때 public void OnRec..

[유니티/C#] Content 크기에 맞춰 늘어나는 Scroll View 만들기(유동적인 Scroll View)

왼쪽에 보이는 것과 같은 스크롤 뷰를 만들어보자. 퀘스트 페이지는 이런 식으로 구성되어 있다. Page2는 오른쪽에 표시되는 내용들이 담겨 있다. foreach (var p in GameManager.instance.ongoingQuests) { foreach (var oq in p.Value) { GameObject tempSlot = Instantiate(questSlotPrefab, ongoingQuestContents.transform); tempSlot.GetComponent().UpdateSlot(GameManager.instance.quests[oq.NPCName][oq.QID]); } } 인벤토리 만드는 것과 비슷하다. public GameObject 선언해서 프리팹 담아주고 (questS..

[유니티 2D/C#] 탑다운 뷰에서 아이템이 바닥에서 튕기는 연출 만들기

탑다운 뷰에서 아이템이 바닥에 튕기도록 만들어보자. 비어있는 게임 오브젝트를 하나 만들고 오브젝트 안에 아이템 스프라이트와 가상 바닥을 넣어주었다. 탄성을 넣어야 하기 때문에 project 창에서 우클릭 - Create - 2D - Physics Material 2D를 눌러 만들어준다. https://docs.unity3d.com/kr/530/Manual/class-PhysicsMaterial2D.html 물리 머티리얼 2D(Physics Material 2D) - Unity 매뉴얼 Physics Material 2D 는 2D 물리 오브젝트 간에 충돌이 발생할 때 일어나는 마찰과 탄성을 조정하기 위해 사용합니다. 에셋 메뉴에서 물리 머티리얼 2D를 생성할 수 있습니다(Assets > Create > Ph..

[유니티/C#] csv 파일을 원하는 타입으로 읽기(Generic 사용)

string LINE_SPLIT_RE = @"\r\n|\n\r|\n|\r"; public List ReadCSV(string fileName) where T: CSVData, new() { List list = new List(); var data = Resources.Load(path + fileName) as TextAsset; string[] lines = Regex.Split(data.text, LINE_SPLIT_RE); for (int i = 1; i < lines.Length - 1; i++) { string[] values = lines[i].Split(','); for (int j = 0; j < values.Length; j++) { string value = values[j]; val..

[유니티/C#] Scroll View에 유동적인 Text 넣기

Hierachy 창에서 우클릭 - UI - Scroll View를 눌러 Scroll View를 만든 후 Content 안에 UI - Text를 넣어줍니다. Scroll View 내의 Content 안에 Vertical Layout Group, Content Size Fitter를 넣어준 후 사진과 같이 설정해줍니다. https://docs.unity3d.com/kr/2017.4/Manual/script-VerticalLayoutGroup.html 수직 레이아웃 그룹 - Unity 매뉴얼 수직 레이아웃 그룹 컴포넌트는 자식 레이아웃 요소를 쌓습니다. 요소의 높이는 다음 모델에 따라 각각 최소, 선호, 가변 높이를 기준으로 결정됩니다. docs.unity3d.com https://docs.unity3d.co..

[유니티/C#] Json을 원하는 타입으로 읽기/쓰기 (Generic 사용)

Newtonsoft의 Json.NET을 사용하였다. using Newtonsoft.Json; using Newtonsoft.Json.Linq; using System.IO; 밑의 코드들은 위의 코드를 넣어주어야 사용 가능하다. Data = ReadJson("Json 파일명"); public T ReadJson(string fileName) { TextAsset textAsset = Resources.Load(fileName); return JsonConvert.DeserializeObject(textAsset.ToString()); } Assets/Resources 안에 있는 Json 파일을 읽어오는 코드이다. filePath = Application.persistentDataPath; Data = Re..

반응형