전체 글23 Unity Addressable을 활용하여 이미지 로드하기 Addressable은 Unity 에디터 및 런타임 에셋 관리 시스템으로, 게임을 출시할 때를 대비하여 에셋을 유동적으로 바꿀 수 있도록, 에셋들에 주소(address)를 대입하여(약한 참조) 에셋을 관리할 때 불필요한 로드를 방지한다. 장점 런타임 메모리를 개선할 수 있다. 참조된 에셋이 메모리 내부 및 외부에 로드되는 시점을 제어할 수 있다. 사용예시 addressable을 활용하여 이미지를 로드해 띄우는 법을 알아보자. 우선, Package Manager에서 Addressables를 다운로드한다. 그리고 불러오고자 하는 이미지의 Addressable에 체크한다. (식별이 편하도록 이름을 바꾸어주어도 기능상 상 문제되지 않는다) 소스코드 그리고 코드를 작성해 준다. 받아오는 과정을 비동기로 진행해 주.. Unity 2023. 1. 11. Unity Json으로 저장, 로드하는 법 Json은 정보를 저장할 수 있는 파일형식으로, xml의 느린 속도를 개선하기 위하여 만들어졌다. 그 대신 저장 규칙이 {"이름1":값1,"이름2":값2,"이름3":값3}으로, 이 형식에서 하나라도 틀리면 오류가 난다. 물론 유니티에서 지원해주는 Scriptable Object가 유니티상에선 월등히 편하긴 하지만, 서버와 연결되거나 할 땐 Json으로 저장하는 것이 서버와 연결할 때 도움이 된다. Json에 덧붙여 조금 더 안전하게 저장을 하기 위하여 이전에 다루었던 AES128 암호화/복호화스크립트를 사용하였다. 코드 전문 using System.IO; using UnityEngine; public class JsonManager : MonoBehaviour { private static string .. Unity 2023. 1. 4. C# AES128를 이용해 암호화, 복호화 오늘은 AES128을 활용하여 암호화와 복호화를 담당하는 스크립트를 알아보자. AES128은 암호화, 복호화를 구현하는 한 가지 방법이며 레인달이라는 알고리즘을 사용한다. Unity에서 중요한 내용을 저장할 시, 해킹을 방지하기 위하여 활용할 수 있다. 코드전문 using System; using System.IO; using System.Security.Cryptography; using System.Text; public class Crypto { //키로 사용하기 위한 암호. 16글자 이상이어야 한다. private static string PASSWORD = "tHisIstesT4tistory"; //인증키 정의 private static readonly string KEY = PASSWORD.S.. C# 2023. 1. 3. [협업툴] 유니티 프로젝트 만들어서 깃에 올렸는데 파일이 너무 많을 때 보통 유니티를 팀원들과 나눠 작업하거나, 자신이 한 것을 아카이브 하기 위하여 협업 툴(Fork, Sourcetree, git)을 사용해 작업하는데, 이 때 처음 겪으면 당황할 수 있는 일에 대한 대처법을 알아보자. 하던 대로 ignore목록을 설정한 후 깃허브 레포지토리를 만들고, 그 폴더 안에 유니티 프로젝트를 새로 생성하게 되면... 이렇게 된다! 처음 이 버그를 만나면 이를 어쩌나 참 막막하다.. 이럴 땐 어떻게 해야 될까? 해결법 이는 설정되어있는 gitignore가 제대로 작동하지 않아서 발생하는 문제이다. 이렇게 폴더로 감싸져 있는 형태일 때는 설정한 내용이 작동되지 않아 여러 파일들이 걸러지지 않은 채로 협업 툴에 올라간 것이다. 그러니 gitignore가 잘 작동하도록 파일 밖으로 Ass.. 협업 툴 2022. 12. 16. Git LFS Push할 때 오류남 해결법 Git LFS GIt LFS란 깃에 50MB를 초과하는 큰 파일들을 업로드 할 때 필요한 기능이며, 깃으로(소스트리 등을 이용할 시엔 제공하는 터미널로) 설치하여 사용할 수 있다. 사용자가 설정한 유형의 파일을 다른 서버에 올린 뒤 원래 위치에 포인터를 남겨 사용자는 기능을 그대로 사용할 수 있지만 파일을 다른 곳에서 받아오게 해주는 기능이다. 사용법 다운로드 git lfs install 설정 git lfs track [파일 경로] Git LFS 오류? 그러나, 내가 간과했던 오류가 있다.. git lfs는 큰 용량의 파일을 미리 commit 한 다음에 install하여 사용하면 오류가 발생한다! 아마 이미 다른 부분을 저장한 뒤(커밋한 뒤) lfs를 사용하려 한 것이 때문이다.. 오류 해결법 commi.. 협업 툴/Git 2022. 12. 16. 깃허브 잔디 3D로 보는 방법 오늘은 내가 느낀 깃허브 잔디의 2D뷰의 단점과 3D 뷰를 다운로드하는 링크를 소개하겠다. 2D뷰의 단점은? 깃허브는 자신이 한 커밋 수를 체크해 초록색의 명도로 나타내 주는 잔디 시스템을 가지고 있다. 그러나 이는 뭔가... 성취욕이 들지 않는다. 그 이유는 최대 커밋수가 올라갈수록 색이 상향 평준화되어 전체적인 색이 점점 연해지기 때문인데, 이게 작은 차이 같아도 나한테는 성취욕이 줄어드는 데에 큰 영향을 미쳤다. 그러나 3D잔디를 알게 되었고, 간지와 더불에 성취욕을 증가시킬 수 있을 것이라는 생각이 들어 바로 다운로드하였다. 확장 프로그램 설치 링크 https://chrome.google.com/webstore/detail/github-isometric-contribu/mjoedlfflcchnle.. 협업 툴/깃허브 2022. 12. 16. KOISTUDY 코이스터디 2661번 a+= C++ 풀이 http://koistudy.net/?mid=prob_page&NO=2661 KOISTUDY koistudy.net 경곽이는 두 정수 a, b를 가지고 있으며 "a+=b"와 "b+=a"를 원하는 만큼 수행 할 수 있다. 경곽이는 이 두 연산과 a, b를 가지고 a와 b값 중 하나를 n보다 크게 만들고 싶어한다. 경곽이가 수행해야 하는 최소의 작업수를 출력해보자. +=연산을 이용하여 특정 수까지 얼마나 연산을 해야하는지를 구하는 문제이다. 구현을 평가하는 문제로, 문제를 잘 읽고 불필요한 연산을 하지 않도록 조심하며 구현한다면 쉽게 풀리는 문제이다. 코드 #include using namespace std; int main() { int a, b,wannabe; cin >> a >> b >> wannabe.. 코딩테스트 2022. 12. 15. 백준 11047번 동전0 C++ 풀이 https://www.acmicpc.net/problem/11047 11047번: 동전 0 첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000) 둘째 줄부터 N개의 줄에 동전의 가치 Ai가 오름차순으로 주어진다. (1 ≤ Ai ≤ 1,000,000, A1 = 1, i ≥ 2인 경우에 Ai는 Ai-1의 배수) www.acmicpc.net 동전을 적절히 사용해서 그 가치의 합을 K로 만들려고 한다. 이때 필요한 동전 개수의 최솟값을 구하는 프로그램을 작성하시오. 현재 가지고 있는 돈을 최소의 지폐로 환산하면 몇 장인지 구하는 문제로, 그리디 알고리즘을 사용할 수 있는 문제이다. 문제의 포인트 문제를 보고 구현할 수 있는가? 최적의 방법을 찾을 수 있는가? 코드 #inc.. 코딩테스트 2022. 12. 13. 프로그래머스 신규 아이디 추천 C++ 풀이 https://school.programmers.co.kr/learn/courses/30/lessons/72410 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr "네오"에게 주어진 첫 업무는 새로 가입하는 유저들이 카카오 아이디 규칙에 맞지 않는 아이디를 입력했을 때, 입력된 아이디와 유사하면서 규칙에 맞는 아이디를 추천해주는 프로그램을 개발하는 것입니다. 문제 설명이 정말 잘되어있는 문제이다. 읽어보면 어찌 짜야할지 대충 감이 오는데, 중요한 건 이를 구현할 수 있는지 이다. 문제의 포인트 regex를 잘 활용할 수 있는가? regex로 특수문자들을 치.. 코딩테스트 2022. 12. 9. 백준 2178번 미로 탐색 C++ 풀이 https://www.acmicpc.net/problem/2178 2178번: 미로 탐색 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다. www.acmicpc.net 미로에서 1은 이동할 수 있는 칸을 나타내고, 0은 이동할 수 없는 칸을 나타낸다. 이러한 미로가 주어졌을 때, (1, 1)에서 출발하여 (N, M)의 위치로 이동할 때 지나야 하는 최소의 칸 수를 구하는 프로그램을 작성하시오. bfs를 이용하여 왼쪽 위에서 오른쪽 아래까지 이동하기 위해 필요한 이동의 개수를 측정하는 문제이다. 문제의 포인트 bfs를 떠올릴 수 있고, 구현할 수 있는가? 코드 #include #include #.. 코딩테스트 2022. 12. 9. 프로그래머스 숫자 문자열과 영단어 C++ 풀이 https://school.programmers.co.kr/learn/courses/30/lessons/81301 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 이렇게 숫자의 일부 자릿수가 영단어로 바뀌어졌거나, 혹은 바뀌지 않고 그대로인 문자열 s가 매개변수로 주어집니다. s가 의미하는 원래 숫자를 return 하도록 solution 함수를 완성해주세요. 1478 → "one4seveneight" 234567 → "23four5six7" 10203 → "1zerotwozero3" 와 같이 중간에 문자가 포함된 문자열들을 다시 숫자들로만 구성된 문자열로 .. 코딩테스트 2022. 12. 9. 백준 2442번 별 찍기 - 5 C++ 풀이 https://www.acmicpc.net/problem/2442 2442번: 별 찍기 - 5 첫째 줄에는 별 1개, 둘째 줄에는 별 3개, ..., N번째 줄에는 별 2×N-1개를 찍는 문제 별은 가운데를 기준으로 대칭이어야 한다. www.acmicpc.net 첫째 줄에는 별 1개, 둘째 줄에는 별 3개, ..., N번째 줄에는 별 2×N-1개를 찍는 문제 별은 가운데를 기준으로 대칭이어야 한다. 피라미드 출력 문제이다. 이 문제를 풀 때는 공백도 또하나의 문자로 생각하며 줄간의 규칙을 찾아보도록 하자. 헷갈린다면 공백을 +와 같은 문자로 치환해 풀고 바꾸는 것도 좋다. 코드 #include using namespace std; int main() { int n; cin >> n; for (int i .. 코딩테스트 2022. 12. 9. 이전 1 2 다음