2016년 2월 24일 수요일

Unity 5.3 에서 변경된 사항


using UnityEngine.SceneManagement;

5.25.3
Application.LoadLevel("sceneName")
Application.LoadLevelAsync("sceneName")
SceneManager.LoadScene("sceneName")
SceneManager.LoadSceneAsync("sceneName")
Application.LoadLevelAdditive("sceneName")SceneManager.LoadScene("sceneName", LoadSceneMode.Additive)
Application.loadedLevelNameSceneManager.GetActiveScene().name

2016년 2월 19일 금요일

AndroidJavaObject (only C#)

Only C#안드로이드 plugin 작업없이 순전히 AndroidJavaObject 클래스를 활용하여C# 으로만 실행하여 처리할 수 있다.



   설치되어 있는 특정 패키지를 찾아서 실행시키는 방법.
public void ClickBtn()
{
string packageName = "com.yourcompany.packagename";
bool fail = false;
#if UNITY_ANDROID && !UNITY_EDITOR
AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
AndroidJavaObject jo = jc.GetStatic<AndroidJavaObject>("currentActivity");
AndroidJavaObject intent = jo.Call<AndroidJavaObject>("getPackageManager");
try{
intent.Call<AndroidJavaObject>( "getLaunchIntentForPackage", packageName);
}
catch( System.Exception e ) {
fail = true;
}
if( fail )
{
Debug.Log( "Could not find App" );
}
else
{
jo.Call("startActivity", intent);
}
#endif
}
view raw gistfile1.cs hosted with ❤ by GitHub

AndroidJavaObject (only C#)

Only C#안드로이드 plugin 작업없이 순전히 AndroidJavaObject 클래스를 활용하여C# 으로만 실행하여 처리할 수 있다.

public void ClickBtn()
{
bool fail = false;
#if UNITY_ANDROID && UNITY_EDITOR
AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
AndroidJavaObject jo = jc.GetStatic<AndroidJavaObject>("currentActivity");
AndroidJavaObject intent = jo.Call<AndroidJavaObject>("getIntent"); ;
try
{
intent.Call<AndroidJavaObject>( "setClassName",
"com.yourcompany.packagename",
"com.yourcompany.packagename.AppActivity" );
intent.Call<AndroidJavaObject>( "putExtra", "nickname", "noname" );
intent.Call<AndroidJavaObject>( "putExtra", "uuid", 12345678 );
intent.Call<AndroidJavaObject>( "putExtra", "type", 1 );
}
catch( System.Exception e )
{
fail = true;
}
if( fail )
{
Debug.Log( "Could not find App" );
}
else
{
jo.Call("startActivity", intent);
}
#endif
}
view raw gistfile2.cs hosted with ❤ by GitHub
일반적인 Native 코드로 작성하여 유니티에서 JNI 를 통해 실행하는 방법이다.

Intent intent = new Intent();
intent.setClassName("com.yourcompany.packagename","com.yourcompany.packagename.AppActivity");
intent.putExtra("nickname", "noname");
intent.putExtra("uuid",12345678 );
intent.putExtra("type",1 );
startActivity(intent);
view raw gistfile3.java hosted with ❤ by GitHub

2015년 12월 3일 목요일

Instantiate prefab as child of GameObject

go.transform.parent = transform; 를 하지 않으면,
Hierarchy Root 에 인스턴스(prefab) 이 생성된다.
따라서 기존의 Object Child 로 생성하려면 아래와 같이 하면 됩니다.

Source code for C#

protected GameObject slot_prefab = null;
for(int i = 0; i < max_slot_count; ++i)
{
GameObject go = GameObject.Instantiate(slot_prefab) as GameObject;
go.transform.parent = transform;
go.name = string.Format("{0:D2}", i);
_table_slot.Add(go.GetComponent<SdkListItem>());
}
view raw gistfile3.cs hosted with ❤ by GitHub

2015년 11월 18일 수요일

Where unity asset store saves the package?

Windows 7:

  • C:\Users\Administrator\AppData\Roaming\Unity\Asset Store-5.x
  • Administrator is User Account.
  • Asset Store-5.x is Unity3D 5.x