유니티에서 좀 복잡한 데이터를 저장하고 싶을때 사용하면 좋은것

직렬화라는 기술인데 원리는 잘모르겠고 

이건 내가 옛날에 인터넷에서 언젠가 봐놓고 프로젝트에 썻던 코드를 예제처럼 꾸며놓은거다.

좀 무겁다고는 하는데 어차피 세이브를 프레임마다 하는건 아니니깐,,,


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
41
42
43
44
45
46
47
48
49
50
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
 
//직렬화를 위한 네임스페이스들
using System;
using System.Runtime.Serialization.Formatters.Binary;
using System.IO;
 
[Serializable] // 직렬화할 클래스는 위에 이걸 써야함
public class Data
{    
    //클래스 안에 들어가는 데이터에 다른 클래스가 들어갈때는 그 클래스도 직렬화가능한 클래스 여야함(Vector 같은거 안됨)
    public string bang;    
    public int game;
    public bool right;
}
 
public class SaveMng : MonoBehaviour
{
 
///*
//
//*/
 
    public void Save(Data data)//세이브
    {
        BinaryFormatter bf = new BinaryFormatter();
        MemoryStream ms = new MemoryStream();
        bf.Serialize(ms, data);
        
        string result = Convert.ToBase64String(ms.GetBuffer();
        PlayerPrefs.SetString("save", result);//변환해서 playerPrefs에 저장
    }
 
    public Data Load()//로드
    {
        Data data=null;
        string save = PlayerPrefs.GetString("save",null);
        
        if (!string.IsNullOrEmpty(save))//
        {
            var binaryFormatter = new BinaryFormatter();
            var memoryStream = new MemoryStream(Convert.FromBase64String(save));
            
            data = (Data)binaryFormatter.Deserialize(memoryStream);//형변환해서 사용
        }
        return data;
    }
}
cs


참고로 직렬화된 결과는 이런식으로 나옴

AAEAAAD/////AQAAAAAAAAAMAgAAAA9Bc3NlbWJseS1DU2hhcnAFAQAAAAREYXRhAwAAAAJkeQRnY

W1lBHN1Y2sBAAAIAQIAAAAKAAAAAAALAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==

블로그 이미지

stuban

ㅇ.ㅇ

,

이렇게 된 스프라이트 시트 Resources.Load로 가지고 오기

1
2
Object[] sprites = Resources.LoadAll("baseBallBoyWooden");
sprRen.sprite = sprites[2as Sprite;

cs

배열의 첫번째는 나누기 전 모습 그 후부터는

배열에 담긴 순서대로 사용 ㅇㅇ


블로그 이미지

stuban

ㅇ.ㅇ

,

마인크래프트 만들었다.

토요일부터 오늘까지 주말에는 게임하다가 평일에는 수업듣고 남는 시간에 짬짬히 만들었다

맵만드는 부분은 어떻게 해도 방법이 안떠오르길래 유튜브 튜토리얼을 보고 만들었고 세이브 시스템과 이동부분은 내가 직접 만들었다.


(아 실제 게임에서는 동영상에처럼 렉 안걸림 (라이트캠이 쓰레기인거임))

UI는 내가 직접 게임에서 캡쳐해서 넣었고 텍스쳐는 구글에서 슬쩍했음 

무한맵은 시간도 없고 실력도 없어서,,, 일단은 안만들었다


minecraft.z01

minecraft.zip


이거는 게임실행 파일

'내가 만든거' 카테고리의 다른 글

길따라 로봇 road robot 제작기(BIC 전시기)  (1) 2019.09.25
등산 시뮬레이터  (0) 2018.06.23
맵 에디터 !!!!  (0) 2018.05.11
유니티 스와이프  (0) 2018.02.20
유니티 사운드 매니저  (2) 2017.08.22
블로그 이미지

stuban

ㅇ.ㅇ

,
트위치의 sentdex라는 채널에서 자율주행 AI "Caarles" 가 gta5의 로스 산토스를 달린다고 합니다.

24시간 연속으로 계속 주행하면서 데이터를 쌓는다고 하는데 언제부터 시작한지는 몰라도 지금은 여기저기 박고 다니고 뭘했는지는 몰라도 별을 4개나 달고 다니네요.

https://m.twitch.tv/sentdex

+ 게속 지켜본 결과 인공지능은 역주행을 즐김
+ 역주행중에 차를 피하려고 하는 모습이 보이기는 하지만 결국은 박아버림

+ 자동차가 물속에 빠지면 사람들이 드디어 집으로 돌아간다면서 환호함


2017-6-18일 : 

차가 역주행을 안함.

차가 차선을 지키려고 하는거 같음 , 하지만 다른차는 피하지않음 

네비게이션을 따라갈려고함


2017-7-18일 :

오랜만에 보니깐 게임화면에 속도계가 추가되고 차가 방탄 구루마에서 랜덤으로 바뀐다.(램프버기 , T20등등)

그리고 그냥 무작정 달리는게 아니라 목적지가 정해져 있었다.

구불구불한 산길은 그냥 스킵하고 날라가기도 하고 자동차도 다 피해다닌다.

그런데 사람은 피할 생각을 안한다 ㅇㅇ

아직 좀 이상하지만 너무 이상해서 답답할 정도는 아니다

중간에 근처에서 폭팔이 일어나던데 알고보니 트위치 채팅 명령으로 폭팔을 일으킬 수 있다 ㅋㅋㅋ


2017-10-16일 :

또 오랜만에 보니깐 더 멍청해진 거 같다.

기물파손을 하는 횟수가 더 많아진 거 같고 벽도 예전보다 더 많이 박는 거 같다.

그래도 아직 길은 잘 따라간다.



블로그 이미지

stuban

ㅇ.ㅇ

,

마우스 커서를 고정하는 방법이 Screen.LockCursor 인줄 알았는데 바뀌었는지 뭔지는 몰라도 변수가 없길래 다시 찾아보니 다른 방법이 있었다


1
2
Cursor.lockState = CursorLockMode.Locked;//마우스 커서 고정
Cursor.visible = false;//마우스 커서 보이기
cs


블로그 이미지

stuban

ㅇ.ㅇ

,

마인크래프트 비슷한 거를 만들고 싶어서 구글링하던 중 마인크래프트의 c0.30_01c 버전을 디 컴파일한 소스를 분석한 글을 발견했습니다.


영어가 안돼서 구글번역 돌려서 봤는데 번역기가 이상한 것인지 글쓴이가 이상한 것인지 아니면 내머리가 이상한지...

이해는 덜 돼도 꽤 재미있는 이야기가 많이 있더군요.



https://github.com/UnknownShadow200/ClassicalSharp/wiki/Minecraft-Classic-map-generation-algorithm






블로그 이미지

stuban

ㅇ.ㅇ

,


참고로 mssql 기준임 다른 관리시스템이랑은 다를 수 도 있음



이진 문자열 : 멀티미디어 자료를 담기위한 자료형 음성, 사진같은 것을 이진 문자열로 관리한다.

참조 : https://goo.gl/nhPaHI


전역 고유식별자(GUID) https://goo.gl/CIqhQ7

'프로그래밍 > SQL' 카테고리의 다른 글

오늘 새로배운 mysql 정리  (0) 2017.10.12
sql 메모  (0) 2017.10.11
apmSetup  (0) 2017.10.11
SQL 정리 - 1 테이블 생성과 수정  (0) 2017.05.17
sql 정리  (0) 2017.05.17
블로그 이미지

stuban

ㅇ.ㅇ

,


솔직히 네이버 스마트 에디터가 쓰기 편하고 이쁘기는 한데 html소스 넣기는 여기가 짱인듯

'일상' 카테고리의 다른 글

작업요 추천  (0) 2017.07.19
앙 수학띠  (0) 2017.07.18
뉴 서피스 프로 광고 음악  (0) 2017.06.23
라임그린색 키캡 질렀다  (0) 2017.05.19
오버워치 배틀코인 카드팩 지르다  (0) 2017.05.09
블로그 이미지

stuban

ㅇ.ㅇ

,