일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Unity Editor
- 샘플
- RSA
- 패스트캠퍼스
- TextMeshPro
- ui
- job
- 직장인공부
- sha
- 패스트캠퍼스후기
- Framework
- 커스텀 패키지
- Tween
- DotsTween
- 2D Camera
- 최적화
- adfit
- C#
- 암호화
- Custom Package
- 프레임워크
- AES
- 직장인자기계발
- 가이드
- 환급챌린지
- base64
- unity
- Dots
- 오공완
- Job 시스템
- Today
- Total
목록unity (102)
EveryDay.DevUp

게임의 데이터를 관리하는 방법은 유지 보수 및 기획서의 대응을 위한 필수 요소 : 코드에 데이터가 하드코딩되어 있다면, 앱 업데이트 외에는 패치가 불가능 : 밸런싱 조절 시 프로그래머에게 계속 요청한다면 쌍방간의 업무 과부하 프로젝트 진행 시에 데이터 관리는 여러가지 방향이 있다. ▶ XML : 마크업 언어로 태그 등을 이용하여 데이터를 기술한 포맷 Convert number to string Examp1.EXE 1 One Find succeeding characters Examp2.EXE abc def ◈ 장점 : Json에 비해 데이터의 표현이 명확하고, 구조적임. 다른 시스템 간 데이터 교환이 용이 ◈ 단점 : Json에 비해 데이터의 크기가 크고, 상대적으로 느림 ▶ JSON : 속성 - 값 쌍 ..

Unity에서 사용하는 C#은 사람이 이해하기 쉽고 편하게 만들어진 프로그래밍 언어. 이를 고급언어라고 한다. 하지만 컴퓨터는 사람의 언어를 그대로 이해할 수 없고, 1과0의 데이터만을 이해할 수 있다. 사실 1과0이라는 글자도 사람이 이해하기 쉽게 수로 표시한 것으로 실상 컴퓨터는 전기 신호의 ON/OFF 만으로 동작한다. 고급언어를 기계가 이해할 수 있는 저급 언어로 변경하기 위해서는 일련의 과정이 필요한데 1. Mono Framework를 통해 IL ( 공통 중간 언어 )로 변환하여 플랫폼의 종속이지 않게 변환됨 2. IL은 Mono를 통해 JIT ( Just in time 으로 실행 중 필요할때 마다 IL의 내용을 기계어로 변환 ) 컴파일 되어 앱이 실행 또는 IL2CPP를 통해 AOT ( Ahe..

게임 내부에서 중요한 데이터는 메모리 해킹이 되지 않도록 암호화하여 사용할 수 있도록 함 : 암복호화 시에 오버헤드가 있기 때문에 중요한 곳에서만 사용해야함 : 암복호화 되는 데이터와, 즉시 저장되는 변수를 나누어 상황에 따라 사용할 수 있도록 함 using System; public class CryptoValue { string encryptData = string.Empty; T data; public void Set(T value) { CryptoComponent cryptoComponent = Game.Instance.crypto; encryptData = Crypto.EncryptAESbyBase64Key( value.ToString(), cryptoComponent.aesBase64Key, ..

게임 중에 일시적으로 저장되고 사용되는 정보들도 있지만, 유저의 환경 설정 데이터와 같이 앱이 설치되어 있는 한 유지되어야 하는 데이터도 존재 이런 데이터는 파일로 만들어 단말기 또는 PC에 저장 ▶ Unity에서 제공하는 PlayerPrefs 를 이용한 데이터 읽기/쓰기 참고 자료 : https://docs.unity3d.com/ScriptReference/PlayerPrefs.html : string, int, float 타입의 데이터를 저장할 수 있음 : 단일한 값으로 사용되기 보다는 게임에서 사용하고 있는 데이터 포맷 Json, xml과 같은 것들을 string으로 변환해서 저장하는 형태로 잘 사용 됨 : PlayerPrefs가 보안에 취약하기 때문에 래핑해서 사용 ( Window PC를 기준으로..

게임에서 사용하는 암호화를 실제 코드로 구현하여 프레임워크에 추가 자세한 이론은 하단의 링크를 참고 https://everyday-devup.tistory.com/24 [Unity] 게임 암호화 게임의 암호화는 유저의 데이터를 지키고, 게임을 서비스 하면서 안정적인 운영을 할 수 있도록 도와주는 것 ▶ 메모리 핵, 앱 변조, 스피드 핵, 데미지 핵과 같은 많은 핵들이 존재하고 방어하�� everyday-devup.tistory.com Crypto Class를 생성 Static 으로 암복호화 함수 추가 ▶ 양방향 암호화 중 비대칭형 암호화는 RSA 를 사용 : RSA의 공개 키와 비밀 키를 파일로 저장해서 관리하기 위해 폴더 경로와 파일 이름을 추가 : 공개 키, 비밀 키 정보를 가질 수 있도록 변수 추가..

게임에서 사용하는 암호화를 실제 코드로 구현하여 프레임워크에 추가 자세한 이론은 하단의 링크를 참고 https://everyday-devup.tistory.com/24 [Unity] 게임 암호화 게임의 암호화는 유저의 데이터를 지키고, 게임을 서비스 하면서 안정적인 운영을 할 수 있도록 도와주는 것 ▶ 메모리 핵, 앱 변조, 스피드 핵, 데미지 핵과 같은 많은 핵들이 존재하고 방어하는 입장 보다는 공.. everyday-devup.tistory.com Class를 생성 Static 으로 암복호화 함수 추가 ▶ 단방향 암호화는 SHA256을 사용 public class Crypto { static SHA256 _sha256 = null; public static string SHA256Base64(stri..

게임에서 사용하는 암호화를 실제 코드로 구현하여 프레임워크에 추가 자세한 이론은 하단의 링크를 참고 https://everyday-devup.tistory.com/24 [Unity] 게임 암호화 게임의 암호화는 유저의 데이터를 지키고, 게임을 서비스 하면서 안정적인 운영을 할 수 있도록 도와주는 것 ▶ 메모리 핵, 앱 변조, 스피드 핵, 데미지 핵과 같은 많은 핵들이 존재하고 방어하�� everyday-devup.tistory.com Crypto Class를 생성 Static 으로 암복호화 함수 추가 ▶ 양방향 암호화 중 대칭형 암호화는 AES 를 사용 : 게임에서 사용할 AES의 키 값과 IV 값을 Base64로 저장할 변수를 생성 using System.Collections; using System...

싱글톤으로 사용하는 GameObject가 있을 때 자식 GameObject도 남아있는지 확인. : 이론상으로 상위 부모가 사라지지 않았기 때문에 자식 GameObject도 남아있는 것이 맞음 using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.SceneManagement; public class Game : Singleton { private void Start() { SceneManager.LoadScene( "TestScene" ); } } ▶ Start 시에 TestScene을 로드하도록 코드를 추가

자세한 이론은 하단의 링크를 참고 https://everyday-devup.tistory.com/24 [Unity] 게임 암호화 게임의 암호화는 유저의 데이터를 지키고, 게임을 서비스 하면서 안정적인 운영을 할 수 있도록 도와주는 것 ▶ 메모리 핵, 앱 변조, 스피드 핵, 데미지 핵과 같은 많은 핵들이 존재하고 방어하�� everyday-devup.tistory.com Crypto Class를 생성 Static 으로 암복호화 함수 추가 ▶ Base64 public class Crypto { public static string EncodingBase64(string plainText) { Byte[] strByte = Encoding.UTF8.GetBytes( plainText ); return Conv..

게임의 암호화는 유저의 데이터를 지키고, 게임을 서비스 하면서 안정적인 운영을 할 수 있도록 도와주는 것 ▶ 메모리 핵, 앱 변조, 스피드 핵, 데미지 핵과 같은 많은 핵들이 존재하고 방어하는 입장 보다는 공격하는 입장이 좀 더 수월한 편 ▶ 클라이언트만으로는 완벽한 암호화를 할 수 없으며, 클라이언트의 암호화는 뚫기 번거롭고 귀찮게 만드는 역할을 하는 정도라고 보는 것이 좋음 ▶ 가장 좋은 것은 모든 데이터를 서버에서 관리하는 것이지만 현실적으로 그렇게 하기엔 부하가 심하기 때문에 중요한 데이터는 서버에서 관리 ● 암호화 방법 ▶ Base64 : Base64는 암호화라기보다는 바이너리 데이터를 아스키 문자열로 표한하는 인코딩 방식 중의 하나. 하지만 Base64를 통해 데이터의 직접적인 확인을 막고, ..