System.out.println("Hello, World");

1. Standard Assets, Pro standard Assets, 혹은 Plugins 아래의 모든 스크립트 컴파일

-> 이 폴더내의 스크립트들은 다른 폴더의 스크립트를 "직접적으로 접근 할 수 없다.(참조 불가능)

클래스나 변수를 직접적으로 참조 할 수는 없지만 GameObjec.SendMessage를 통해 간접적으로 가능하다.


2. Standard Assets/Editor, Pro standard Assets/Editor 혹은 Plugins/Editor의 컴파일 

-> 메뉴 아이템이나 커스텀 위자드처럼 UnityEditor 네임 스페이스를 사용하는 에디터 코드를 작성하고자 한다면 이 폴더내에 스크립트가 있어야 한다.


3. Editor의 컴파일

-> 2번과 같이 UnityEditor 네임 스페이스를 사용하지만 표준 폴더(Standard Assets)이외의 위치에 있는 스크립트를 컴파일한다. 모든 이전 그룹을 참조가능하지만 4번 그룹은 참조가 불가능하다.


4. 그밖의 모든 스크립트의 컴파일

-> 위 그룹중 어디에도 속하지 않은 스크립트. 

이 그룹에 속한 스크립트는 1번 그룹의 모든 스크립트를 접근가능하게 되며 스크립트 언어간 교차호출이 가능하게 된다. 예를 들어 자바스크립트에서 C# 스크립트를 사용하고 싶다면 C#스크립트를 Standard Assets 폴더내에 자바 스크립트를 밖에 둔다. 이 상태에서는 자바스크립트가 직접 C# 스크립트를 호출 할 수 있다.

Posted by 김마농

유니티 내부의 스크립팅은 동작들(behaviours)이라 불리는 스크립트 오브젝트들을 게임 오브젝트들에 Attatch 시킴으로써 이루어진다. 스크립트 오브젝트를 내부의 서로 다른 함수들은 어떤 이벤트들상에서 호출된다.


1. OnGUI : 렌더링 및 GUI 이벤트를 처리한다.

- GUI.DrawTexture : 사각형내의 텍스쳐를 그린다.

- 매개변수

Position : 화면의 직사각형내에 질감을 그릴 수 있다.

image : Texture 표시

scalemode : 그것의 비율내에서 얻을 수 있는 비율에 맞지 않는 이미지를 확장한다.

alphaBlend : 알파로 표시

ImageAspect : 비율이 원본 이미지에 사용된다.


2. Start()

- Start는 라이프 사이클 중 딱 한번 호출된다. Awake와 차이점은 스크립트 인스턴스가 활성화된 경우에만 시작된다. Awake는 항상 어떤 기능을 사용하기전에 호출되어 초기화 시킬수 있다.

- 모든 스크립트 인스턴스는 Awake)가 호출된뒤 Star()가 실행된다.


3. Update()

- 매 프레임마다 호출되어 실행될 함수

- Update는 게임 행동의 여러 종류를 구현하는 가장 일반적인 함수

- 하나의 프레임이 렌더링 되기전에 호출된다.


4. Texture2D

- 2D 텍스쳐를 처리하기 위한 클래스


5. Resources.Load

- Resources 폴더내의 하위 경로에 저장된 파일을 불러온다. 하위 경로에 파일이 발견되면 파일을 반환하고, 그렇지 않은 경우 null이 반환된다. 하위경로는 Resources 폴더와 상대적인 경로를 가지며, 확장자는 반드시 제외되어야 한다. 

ex)Resources.Load("파일명")


6. Awake() -> Start() -> Update() -> LateUpdate()

Posted by 김마농



키보드를 제어하려면 InputMethodManager 객체를 사용한다. 이 객체는 getSystemService 메서드로 구할 수 있으며 다음 메서드로 키보드를 보이거나 숨긴다.


mImm.showSoftInput(View view, int flags);

mImm.hideSoftInputFromWindow(IBinder windowToken, int flags [,ResultReceiver resultReceiver]);


위와 같이 Show버튼을 누르면 키보드가 등장하고, Hide버튼을 누르면 키보드가 사라진다.



Posted by 김마농

코드에서 inputType 속성을 변경할때는 setInputType이나 setRawInputType 메서드를 호출하는데 인수로 세속성의 조합을 전달한다. 인수의 타입은 정수 하나이지만 속성 조합이 까다로우므로 실행 중에 변경하는 것은 쉽지 않으며 XML 문서의 inputType 속성으로 지정하는 것이 훨씬 쉽다. 


 inputType

설명 

none 

편집할 수 없는 문자열 

text 

단순 문자열 

texttimeMultiLine 

여러 줄 입력 가능한 문자열 

textEmailAddress 

email 주소 

textPassword 

비밀번호 

number 

숫자 

numberSigned 

숫자와 부호 

numberDecimal 

숫자와 부호와 소수점 

phone 

전화번호 

datetime 

날짜와 시간 


각 에디트박스를 선택하면 아래쪽에 소프트 키보드가 나타나는데 입력타입에 따라 키보드의 모양이 완전히 달라진다.





Posted by 김마농



case R.id.home은 Edit박스의 첫번째로 이동한다.


case R.id.end는 Edit박스의 마지막으로 이동한다.


case R.id.selblock은 지정한 위치의 3번째와 10번째를 블록 지정한다.


case R.id.selall은 Edit박스를 모두 블록지정한다.


case R.id.getSel은 임의로 지정한 블록을 Toast로 몇번째와 몇번째가 블록지정했는지 알려준다.



Posted by 김마농



길이를 제한하는 정석적인 방법은 입력 필터를 사용하는 것이다.


void setFilters(InputFilter[] filters)


이 메서드로 에디트의 입력을 제한하는 필터 객체를 지정하는데 필터의 배열을 전달할 수 있으므로 대문자만 받는다던가, 길이를 제한하는 필터를 한꺼번에 지정할 수 있다.


위와 같은 코드에서는 3글자만 받도록 제한하였다.



Posted by 김마농



XML에 등록해둔 won, price, won2, price2를 받아서 


TextWatcher에 들어 있는 float price = (float)won/gram;


여기서 계산해준후 

mPrice.setText(String.format("그램당 %.4f원",price));로 가격을 계속 바꿀때마다 변경하도록 한다. 





Posted by 김마농

일본 TCG 판매 순위

2012. 8. 13. 17:27 : 게임/TCG



공부하다가 문득 요즘 TCG의 판도가 어떻게 됬나 하고 검색해서 이러한 동영상을 발견했다.



시리즈 별로 인기 

1위 유희왕

2위 듀얼마스터 

3위 카드파이터 뱅가드


?!!! 놀랍게도 3위권안에 포켓몬이랑 매직더게더링이 없음



2011년도 판매금액누계 1006억 1341만 4000엔


계산이 틀리지 않았다면 환율적용했을때 약 145조



전년도비 19.7% 증가


TCG 시장이 이제 축소되는줄 알았는데 다시 증가하고 있는 상황



트레이딩카드 박스, 부스터팩 인기 랭크

1위 카드파이터 뱅가드 트라이얼덱 [은랑의 조격]

2위 카드파이터 뱅가드 트라이얼덱 [뇌룡의 명동]

3위 카드파이터 뱅가드 부스터팩 [극한돌파]

4위 카드파이터 뱅가드 엑스트라부스터 [가희의 향연]

5위 카드파이터 뱅가드 부스터팩 [마계제후의 습격]




1위 은랑의 조격



2위 뇌룡의 명동



3위 극한돌파



4위 가희의 향연



5위 마계제후의 습격


유희왕, 포켓몬, MTG ㅠㅠ



Posted by 김마농



텍스트가 변경되는 것도 일종의 이벤트이며 편집될때마다 어떤 작업을 할 필요가 있을때 이 이벤트에 반응하면 된다. 편집 이벤트를 처리하는 TextWatcher 객체를 생성한 후 리스너로 등록해 놓으면 사용자가 문자열을 편집할 때마다 TextWatcher 인터페이스의 메서드가 호출된다.

 

public void afterTextChanged(Editable s) {}

public void beforeTextChanged(CharSequence s, int start, int count,int after) { }

public void onTextChanged(CharSequence s, int start, int before,int count) {


이 이벤트들은 변경 사실을 알리기만 할 뿐이므로 리스너 내에서 문자열을 수정해서는 안된다. afterTextChanged에서 문자열 s를 변경 할 수 있지만 잘못하면 무한 루프에 빠질 위험이 있으므로 주의해야 한다. 



Posted by 김마농




editText창과 버튼 5개를 각각 만들어준다. OnClickListener대신 onClick="mOnClick"을 이용한다.


INS 버튼은 INS를 삽입하고, DEL버튼은 2번째부터 5번까지 삭제한다. 


APP 버튼도 INS처럼 문자를 삽입한다. REP은 2번째부터 5번까지의 텍스트를 REP로 교체한다. 


CLEAR버튼은 모든 텍스트들을 초기화 시킨다. 









Posted by 김마농