복붙하면 배경이랑 글자색도 그대로 따라옴
그래도 컬러스트립터가 더 좋은듯
'프로그래밍 > 기타' 카테고리의 다른 글
c# 리스트 합치는 법 & 중복 제거하는 법 (2) | 2017.12.17 |
---|---|
벡터 회전하기 (0) | 2017.07.18 |
나사에서 아폴로발사할때 코딩 방법 (0) | 2017.06.23 |
베지어 곡선 한방에 이해되는 글& 짤 (0) | 2017.06.18 |
마인크래프트의 맵을 생성하는 과정 (0) | 2017.05.21 |
복붙하면 배경이랑 글자색도 그대로 따라옴
그래도 컬러스트립터가 더 좋은듯
c# 리스트 합치는 법 & 중복 제거하는 법 (2) | 2017.12.17 |
---|---|
벡터 회전하기 (0) | 2017.07.18 |
나사에서 아폴로발사할때 코딩 방법 (0) | 2017.06.23 |
베지어 곡선 한방에 이해되는 글& 짤 (0) | 2017.06.18 |
마인크래프트의 맵을 생성하는 과정 (0) | 2017.05.21 |
c# 리스트 합치는 법 & 중복 제거하는 법 (2) | 2017.12.17 |
---|---|
벡터 회전하기 (0) | 2017.07.18 |
나사에서 아폴로발사할때 코딩 방법 (0) | 2017.06.23 |
비주얼 스튜디오 코드의 숨겨진 기능? (0) | 2017.06.18 |
마인크래프트의 맵을 생성하는 과정 (0) | 2017.05.21 |
유니티에서 코딩하면서 가장 좋아하는 기능중에 하나였던거 같다.
물론 유니티가 아니라 c#에서 쓰는거지만 어차피 난 유니티만 쓰니깐 유니티에서 쓰는법을 쓸거임
참고로 옛날에 썻던 네이버 블로그에 있던거 그대로 복붙함
c#에서 지원하는 xmlDocument클래스를 써서 xml데이터를 읽어올수 있는데
유니티에서 인스펙터로 끌어서 가지고 오려면 유니티에서 지원하는 TextAsset를 사용하면 된다.
물론 Resource.Load나 파일입출력으로 가지고 올 수도 있다.
아래는 랜덤한 철수를 뽑아오는 클래스다.
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 | using System.Collections; using System.Collections.Generic; using UnityEngine; using System.Xml;//xml 네임스페이스 using하기 public class XMLTEST : MonoBehaviour { [SerializeField] private TextAsset xmlTxt;//텍스트 에셋으로 가지고온 xml파일 private XmlDocument xmlDoc;//텍스트로 가져온 파일을 xml도큐먼트로 변환 private void Start () { //text를 XmlDocument에 맞게 변환 xmlDoc = new XmlDocument(); xmlDoc.LoadXml(xmlTxt.text); Debug.Log(getName()); } public string getName() { XmlNodeList nodes = xmlDoc.SelectNodes("Name/familyName/name");//랜덤한 성씨 string name = nodes[Random.Range(0, nodes.Count)].InnerText; name += xmlDoc.SelectSingleNode("Name/lastName/name").InnerText;//하나의 이름 return name;//이름 출력 } } | cs |
xml 파일은 이렇게 되어있다
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | <?xml version="1.0" encoding="utf-8" ?> <Name> <familyName> <name>김</name> <name>이</name> <name>박</name> <name>최</name> <name>정</name> <name>강</name> <name>안</name> <name>조</name> </familyName> <lastName> <name>철수</name> </lastName> </Name> | cs |
System.Xml의 msdn 문서 : https://msdn.microsoft.com/ko-kr/library/system.xml(v=vs.110).aspx
XML에 대한 위키문서 : https://ko.wikipedia.org/wiki/XML
유니티 코루틴 1프레임 스킵하기 (0) | 2017.06.29 |
---|---|
유니티애드의 수익 (0) | 2017.06.23 |
클래스문자열로 만들어서 저장하기 - 유니티에서 (0) | 2017.06.17 |
유니티 Resources.Load로 슬라이스 된 스프라이트 가지고 오기 (0) | 2017.05.29 |
마우스 커서 고정하기 & 안보이게 하기 (0) | 2017.05.21 |
유니티에서 좀 복잡한 데이터를 저장하고 싶을때 사용하면 좋은것
직렬화라는 기술인데 원리는 잘모르겠고
이건 내가 옛날에 인터넷에서 언젠가 봐놓고 프로젝트에 썻던 코드를 예제처럼 꾸며놓은거다.
좀 무겁다고는 하는데 어차피 세이브를 프레임마다 하는건 아니니깐,,,
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==
유니티애드의 수익 (0) | 2017.06.23 |
---|---|
유니티에서 xml쓰기 (0) | 2017.06.17 |
유니티 Resources.Load로 슬라이스 된 스프라이트 가지고 오기 (0) | 2017.05.29 |
마우스 커서 고정하기 & 안보이게 하기 (0) | 2017.05.21 |
Rigidbody.velocity 를 상대적인 방향으로 움직이기 (0) | 2017.05.19 |
이렇게 된 스프라이트 시트 Resources.Load로 가지고 오기
1 2 | Object[] sprites = Resources.LoadAll("baseBallBoyWooden"); sprRen.sprite = sprites[2] as Sprite; | cs |
배열의 첫번째는 나누기 전 모습 그 후부터는
배열에 담긴 순서대로 사용 ㅇㅇ
유니티에서 xml쓰기 (0) | 2017.06.17 |
---|---|
클래스문자열로 만들어서 저장하기 - 유니티에서 (0) | 2017.06.17 |
마우스 커서 고정하기 & 안보이게 하기 (0) | 2017.05.21 |
Rigidbody.velocity 를 상대적인 방향으로 움직이기 (0) | 2017.05.19 |
내가 만든 사운드 매니저 (2) | 2017.05.19 |
마우스 커서를 고정하는 방법이 Screen.LockCursor 인줄 알았는데 바뀌었는지 뭔지는 몰라도 변수가 없길래 다시 찾아보니 다른 방법이 있었다
1 2 | Cursor.lockState = CursorLockMode.Locked;//마우스 커서 고정 Cursor.visible = false;//마우스 커서 보이기 | cs |
클래스문자열로 만들어서 저장하기 - 유니티에서 (0) | 2017.06.17 |
---|---|
유니티 Resources.Load로 슬라이스 된 스프라이트 가지고 오기 (0) | 2017.05.29 |
Rigidbody.velocity 를 상대적인 방향으로 움직이기 (0) | 2017.05.19 |
내가 만든 사운드 매니저 (2) | 2017.05.19 |
유니티 안드로이드 빌드 문제 (0) | 2017.05.09 |
마인크래프트 비슷한 거를 만들고 싶어서 구글링하던 중 마인크래프트의 c0.30_01c 버전을 디 컴파일한 소스를 분석한 글을 발견했습니다.
영어가 안돼서 구글번역 돌려서 봤는데 번역기가 이상한 것인지 글쓴이가 이상한 것인지 아니면 내머리가 이상한지...
이해는 덜 돼도 꽤 재미있는 이야기가 많이 있더군요.
https://github.com/UnknownShadow200/ClassicalSharp/wiki/Minecraft-Classic-map-generation-algorithm
c# 리스트 합치는 법 & 중복 제거하는 법 (2) | 2017.12.17 |
---|---|
벡터 회전하기 (0) | 2017.07.18 |
나사에서 아폴로발사할때 코딩 방법 (0) | 2017.06.23 |
비주얼 스튜디오 코드의 숨겨진 기능? (0) | 2017.06.18 |
베지어 곡선 한방에 이해되는 글& 짤 (0) | 2017.06.18 |
참고로 mssql 기준임 다른 관리시스템이랑은 다를 수 도 있음
이진 문자열 : 멀티미디어 자료를 담기위한 자료형 음성, 사진같은 것을 이진 문자열로 관리한다.
전역 고유식별자(GUID) : https://goo.gl/CIqhQ7
오늘 새로배운 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 |