유니티에서 변수를 여러개 작성한다.

유니티에서 사용하기 위해서는 public을 사용한다고 한다.


그러면 유니티 에디터에서는 해당 게임오브젝트 옆에 인스펙터(Inspector)에 자동으로 그 변수가 표시된다.

이곳에서, 값을 쉽게 바꿀 수 있다고 한다. 그래서 처음에는 아. 둘 다 지원되는구나 했는데..


그런데, 이상한 점을 하나 발견했다. 

스크립트에서 값을 변경해도 이 인스펙터에서는 전혀 변경되지 않는다. 

즉, 플레이를 할 때, 변경하기 이전값이 그대로 출력된다.

뭔가 문제가 있는것 같아서 유니티를 재설치해볼까도 생각해봤는데...

검색해서 이유를 발견했다.


스크립트보다 인스펙터 값이 우선시된다. 스크립트에서 아무리 고쳐도 인스펙터 값이 적용된다는 것이다.

왜 실시간으로 바뀌지 않는것일까?

이 스크립트가 들어있는 인스펙터에서 설정 아이콘을 클릭 - Reset을 해줘야만 스크립트에 값들이 로드되는것을 볼 수 있다. 자동으로 업데이트 되는 방법은 없는것인가?


알게되면 블로그에 작성해야겠다.

매번 리셋을 할 수는 없는 것 아닌가.

Posted by sungho88
,

using UnityEngine;
using System.Collections;

public class Variables : MonoBehaviour {

    public string SIGNUP =  "등록";
    public string LOGIN = "로그인";
    public string LOGIN_FACEBOOK = "Facebook Login~~";

    // Use this for initialization
    void Start () {
 
    }
    
    // Update is called once per frame
    void Update () {
    
    }
}


여기 이런 스크립트가 있다. 

다른 스크립트에서 이 스크립트에 선언된 변수를 선언하는 방법은 무엇일까.

가장 먼저, 위 스크립트를 (빈) 게임오브젝트에 집어넣어 컴포넌트화 시켜놓고, GetComponent를 사용하는 방법이다.


Variables vari = GameObject.Find("Variables 컴포넌트가 부착된 오브젝트").GetComponent<Variables>();


또는 나눠서,


GameObject gameObject = GameObject.Find("Variables 컴포넌트가 부착된 오브젝트");

Variables vari = gameObject.GetComponent<Variables>();


으로 작성한다.


//////////////////


하지만, 왜 반드시 GameObject를 선언해줘야하는것인가?

그냥 변수를 가져와서 쓸 수 있는 방법은 없는걸까?

검색결과, 싱글톤 방식으로 변경을 하면 가능하다는 것을 알게 되었다.



Posted by sungho88
,

이전에 MD5에 관련된 예제를 보았다.


MD5 사용하기


이번에는 SHA256을 사용해보려고 한다.

MD5보다 짧다


이 함수를 사용하기 전에도 역시 


using System.Security.Cryptography; 을 미리 상단에 추가해줘야 한다.


그리고 다음과 같이 작성하면된다.



     public string SHA256Hash(string data) {

        SHA256 sha = new SHA256Managed ();
        byte[] hash = sha.ComputeHash (Encoding.ASCII.GetBytes (data));
        StringBuilder stringBuilder = new StringBuilder();
        foreach (byte b in hash) {
            stringBuilder.AppendFormat ("{0:x2}", b);
        }
        return stringBuilder.ToString ();
    }


패스워드를 123456789라고 입력했다고 가정하자.

그리고, 다음과 같이 MD5Hash 함수와 SHA256Hash 함수를 호출하였을때, 



다음과 같은 결과가 나타난다.


SHA가 훨씬 더 길게 나온다는 것을 알 수 있다.

또한, 어떠값을 변수값을 함수 내 매개변수로 넣었다고 해도 그 변수값은 변하지 않는다. 

Posted by sungho88
,