Assets 폴더 내부에 있는 이미지 파일을 소스상에서 로드하는 방법은 Resources.Load 를 사용하면 된다.


사용 방법은 아래와 같다.


이미지의 위치가 Assets/Resources/Texture/image.jpg 인 경우



private iEnumerator loadImage()
{
	Texture2D texture = null; 
	string PATH = "Texture/image.jpg";		//이미지 위치를 저장하는 변수
	texture = Resources.Load(PATH,typeof(Texture2D)) as Texture2D;	//이미지 로드
	buttonImage.mainTexture = texture;	//이미지를 넣어 준다.
}



Resources.Load 를 이용해서 불러오기 위해서는 반드시 Resources 하위폴더에 있어야 한다.

Posted by 후미카
:

애드몹 전면광고는 메인 UI 스레드에서 호출 되어야 한다.


유니티 - 안드로이드 연동시에 loadAd 시 또는 isLoad 체크시에 어플이 에러로그 없이 종료 되는 현상이 있는데 이는 메인 UI스레드에서 실행하지 않았기 때문이다.


이를 해결하기 위해선 메인 UI 스레드에서 실행해 주면 되는데 해결 방법은 아래와 같다.


private InterstitialAd mInterstitial;


private void showInterstitial()
{
	runOnUiThread(new Runnable() {
			
		@Override
		public void run() {
			if (mInterstitial.isLoaded()) {
				Log.i(TAG,"call show");
				mInterstitial.show();
				
				loadInterstitial();
			}
		}
	});
}
Posted by 후미카
:

유니티에서 전처리기를 사용하는 방법은 2가지가 있다


1. 파일로 정의 하는 방법

2. 유니티 설정에서 정의하는 방법




1. 파일로 정의하는 방법


먼저 자신이 사용하는 유니티 Api Compatibility Level 을 알아봐야 합니다.


확인 방법은 PlayerSettings -  Other Settings 에서 확인이 가능 합니다.





#define AAA 를 전역으로 사용하고 싶다면 메모장에 -define:AAA 를 적고

#define AAA 와 #define BBB 를 모두 사용하고 싶다면 -define:AAA;BBB 와 같은 형식으로 적어주면 됩니다.


모두 적으셨으면 유니티 프로젝트에 Assets 폴더에 


.net 2.0 일 경우엔

gmcs.rps


.net 2.0 subset 일 경우엔

smcs.rps



파일로 저장 해 주시면 됩니다.


smsc 파일 수정시엔 해당 define 을 사용하는 스크립트를 재 컴파일 해줘야 됩니다.



2. 유니티 설저엥서 정의하는 방법


플레이어 세팅 - other settings 에서 설정 해 주면 됩니다.


ex) AAA;BBB;




Posted by 후미카
:

NGUI 사용중 스크롤 마스크 영역 밖에 있는 Texture 이미지가 보일 때가 있는데


이때 Material 의 Shader 속성을 Unlit / Transparent Colored 로 변경 해주면 됩니다.




Posted by 후미카
:

p4merge 를 64비트 프로그램으로 설치하였다면 언인스톨 한 뒤 32비트 프로그램으로 재설치 해주면 됩니다.


유니티가 64비트 p4merge 를 인식하지 못하기 때문에 발생하는 현상 입니다.


p4merge 다운로드



Posted by 후미카
:

한 게임 오브젝트가 A 오브젝트와는 충돌을 하지만 B 오브젝트는 충돌을 무시하고 싶을 때가 있다.


이럴땐 게임 오브젝트에 레이어를 씌워 준 다음 프로젝트 세팅에서 물리 충돌 체크 여부를 설정 할 수 있다.


Edit - project setting - physics 탭 아레쪽에 보면 각 레이어별로 충돌체크 여부가 있다. 이부분에서 충돌하지 않을 레이어와 겹쳐있는 체크박스를 해제 해 주면 된다.


주의사항 - 체크박스 해제시 Collision 뿐만 아니라 Trigger 체크까지 수행하지 않게 된다. 

트리거 체크를 원하는 경우 자식 오브젝트로 콜라이더를 하나 추가한 뒤 다른 레이어로 트리거 체크를 하게되면 가능 하다.

Posted by 후미카
:

Input.getTouch(0) 함수 대신


Input.GetMouseButtonDown (0) 함수를 하용하면 터치와 마우스클릭이 동시에 처리 된다.



하지만 Input.GetAxis("Mouse X") 의 경우 마우스와 터치의 반환값은 서로 다르다.

Posted by 후미카
:

게임 소스 내에서 부모 게임오브젝트에 접근할땐 콜라이더를 이용해서 찾을 수 있다.


ex) 

transform.parent.gameObject;

transform.root.gameObject;

Posted by 후미카
:

Unity3d 에서는 Random.range(float start,float end); 함수를 사용하여 무작위 숫자를 생성한다


이때 결과는 start 이상 end 미만이므로 0부터 100을 포함한 숫자를 원한다면 Random.range(0,101); 로 입력 해야한다.


주의사항


시작과 끝값에 실수를 입력 할 경우 뒤에 반드시 f 를 붙여줘서 플로트 형태로 전달한다.


ex)

Random.range(0.1f, 10.5f);


해당 랜덤 함수는 UnityEngine 네임스페이스를 사용한다.

System.Random 과는 다르기 때문에 System 과 UnityEngine 네임스페이스를 동시에 사용하는 경우 UnityEngine.Random 형식으로 사용 해야 하는 경우가 있다.

Posted by 후미카
:

카테고리

전체보기 (102)
Development (102)

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

달력

«   2024/05   »
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

글 보관함