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


사용 방법은 아래와 같다.


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



1
2
3
4
5
6
7
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 스레드에서 실행해 주면 되는데 해결 방법은 아래와 같다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
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)

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

달력

«   2025/04   »
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

글 보관함