블로그 이미지
Every unexpected event is a path to learning for you.

카테고리

분류 전체보기 (2737)
Unity3D (817)
Programming (474)
Server (33)
Unreal (4)
Gamebryo (56)
Tip & Tech (228)
협업 (58)
3DS Max (3)
Game (12)
Utility (136)
Etc (96)
Link (32)
Portfolio (19)
Subject (90)
iOS,OSX (53)
Android (14)
Linux (5)
잉여 프로젝트 (2)
게임이야기 (3)
Memories (20)
Interest (38)
Thinking (38)
한글 (30)
PaperCraft (5)
Animation (408)
Wallpaper (2)
재테크 (18)
Exercise (3)
나만의 맛집 (3)
냥이 (10)
육아 (16)
Total
Today
Yesterday
04-25 00:00


[MenuItem("AssetBundles/Set Asset Bundle From File Name",false, 0)]
static void SetAssetBundlesFromFileNames()
{
	if (Selection.assetGUIDs.Length > 0) {
		foreach (ObjectassetinSelection.objects) {
			string path = AssetDatabase.GetAssetPath(asset);
			AssetImporter assetImporter = AssetImporter.GetAtPath(path);
			assetImporter.assetBundleName = asset.name;
			Debug.Log(Selection.assetGUIDs.Length + " Asset Bundles Assigned");
		}
	} else {
		Debug.Log ("No Assets Selected");
	}
}



[출처] https://forum.unity.com/threads/set-asset-bundle-name-form-editor-menu-item-script.333297/

반응형
Posted by blueasa
, |

앱 실행 시, 타 앱(멜론이나 벅스뮤직 등)의 백그라운드에서 재생되는 음원을 끄게 할 수 없냐고 말이나와서 권한 문제로 안될 줄 알았는데..

유니티 셋팅에 보니 PlayerSettings-Other Settings에 Mute Other Audio Sources 옵션이 있다.


켜주니 타 앱 사운드가 잘 꺼진다.


  [Android 주의사항]

Android Marshmallow (6.0) 이상은 READ_PHONE_STATE permission을 추가해줘야 된다고 한다.




[출처] https://stackoverflow.com/questions/39080989/unity-app-stops-background-music


[참조] https://docs.unity3d.com/ScriptReference/PlayerSettings-muteOtherAudioSources.html

[참조] http://jwandroid.tistory.com/153

반응형
Posted by blueasa
, |

안드로이드 권한(Permisstion) 종류


사이트에가서 권한에 대한 정리를 해보았습니다. 짧은 영어로 해석한거라 의미가 애매하네요.

정확한 의미, 언제 사용 하는지 등을 아시는분은 댓글좀 달아주세요..


출처 : http://developer.android.com/reference/android/Manifest.permission.html


Constants
 ACCESS_CHECKIN_PROPERTIES

체크인데이터베이스의 속성테이블의 

읽고 쓰기 권한

 ACCESS_COARSE_LOCATION

코드(coarse)위치 권한(Cell-ID, WIFI)

gps사용시 선언.

 ACCESS_FINE_LOCATION파인위치(find  location) 허용(gps)
gps사용시 선언.
 ACCESS_LOCATION_EXTRA_COMMANDS추가적인 위치 제공(?)
gps사용시 선언해야함.
 ACCESS_MOCK_LOCATION

테스트용 mock 위치 제공자 생성
gps사용시 선언해야함.

 ACCESS_NETWORK_STATE네트워크 정보에 접근
 ACCESS_SURFACE_FLINGER하위 수준의 서페이스핑거를 사용
 ACCESS_WIFI_STATEwifi 정보에 접근
 ACCOUNT_MANAGERAllows applications to call into 
AccountAuthenticators.
 ADD_VOICEMAIL음성 이메일 추가 권한

AUTHENTICATE_ACCOUNTSAllows an application to act as 
an AccountAuthenticator for 
the AccountManager
 BATTERY_STATS

베터리 상태 권한

 BIND_APPWIDGET 
 BIND_DEVICE_ADMIN 
 BIND_INPUT_METHOD 
 BIND_REMOTEVIEWS 
 BIND_TEXT_SERVICE 
 BIND_VPN_SERVICE
 BIND_WALLPAPER

Live WallPaper를 서비스에서 

돌릴때 사용하였음.

 BLUETOOTH블루투스
 BLUETOOTH_ADMIN

블루투스 어드민

 BRICK

very dangerous!

 BROADCAST_PACKAGE_REMOVED제거된 app 패키지에 대한 
노티 브로드케스트
 BROADCAST_SMS

SMS 관련 권힌

 BROADCAST_STICKYbroadcast sticky intents.
 BROADCAST_WAP_PUSHAllows an application to broadcast 
a WAP PUSH receipt notification
 CALL_PHONE

전화 통화


CALL_PRIVILEGED

전화 통화

긴급통화 포함

 CAMERA

카메라 권한

 CHANGE_COMPONENT_ENABLED_STATE

CHANGE_CONFIGURATION

Configuration 관련 권한

 CHANGE_NETWORK_STATE

인터넷(네트워크) 권한

 CHANGE_WIFI_MULTICAST_STATEAllows applications to enter 
Wi-Fi Multicast mode
 CHANGE_WIFI_STATEWIFI 사용 권한
 CLEAR_APP_CACHE설치된 앱 캐쉬 
삭제 권한
 CLEAR_APP_USER_DATA유저 데이터 삭제 권한
 CONTROL_LOCATION_UPDATES

위치정보 갱신 권한
gps사용시 선언

 DELETE_CACHE_FILES캐시파일 제거권한
 DELETE_PACKAGES패키지 삭제 권한
 DEVICE_POWERAllows low-level access 
to power management
 DIAGNOSTIC

Allows applications to RW to 
diagnostic resources.

 DISABLE_KEYGUARDAllows applications to 
disable the keyguard
 DUMP

EXPAND_STATUS_BAR상태표시줄 확장 권한
 FACTORY_TESTRun as a manufacturer test 
application, running as the 
root user.
 FLASHLIGHT플래시라이트 권한
 FORCE_BACKAllows an application to force 
a BACK operation on whatever 
is the top activity.
 GET_ACCOUNTS
 GET_PACKAGE_SIZE패키지 사용 공간 관련 권한
 GET_TASKS태스트 관련 권한
 GLOBAL_SEARCH

HARDWARE_TESTAllows access to 
hardware peripherals.
 INJECT_EVENTS

INSTALL_LOCATION_PROVIDER

INSTALL_PACKAGES패키지설치 권한
 INTERNAL_SYSTEM_WINDOW

INTERNET인터넷 권한
 KILL_BACKGROUND_PROCESSESAllows an application to call 
killBackgroundProcesses(String).
 MANAGE_ACCOUNTS

MANAGE_APP_TOKENSAllows an application to manage 
(create, destroy, Z-order) 
application tokens in the 
window manager.
 MASTER_CLEAR
 MODIFY_AUDIO_SETTINGS오디오 관련 권한
 MODIFY_PHONE_STATE폰상태 관련 권한
 MOUNT_FORMAT_FILESYSTEMS파일 시스템 권한
 MOUNT_UNMOUNT_FILESYSTEMS파일 시스템 권한
 NFCNFC관련 권한
 PERSISTENT_ACTIVITYThis constant is deprecated. 
 PROCESS_OUTGOING_CALLS

전화 발신 체크 권한

 READ_CALENDAR

캘린더 관련 권한

 READ_CONTACTS주소록 관련 권한
 READ_FRAME_BUFFER프레임 버퍼 관련 권한

READ_HISTORY_BOOKMARKS웹 즐겨찾기 등 권한
 READ_INPUT_STATE입력 상태 관련 권한(키보드)
 READ_LOGS로그 관련 권한

READ_PHONE_STATE폰상태 관련 권한
 READ_PROFILE사용자 프로파일 관련 권한
 READ_SMSSMS문자 관련 권한
 READ_SOCIAL_STREAM
 READ_SYNC_SETTINGS
 READ_SYNC_STATS
 REBOOT재부틱 관련 권한
 RECEIVE_BOOT_COMPLETED부팅완료 관련 권한
 RECEIVE_MMSMMS 수신 관련 권한
 RECEIVE_SMSSMS(문자) 수신 관련 권한
 RECEIVE_WAP_PUSHWAP 푸시 권한
 RECORD_AUDIO

오디오 녹음 권한

 REORDER_TASKS태스크 z오더
 RESTART_PACKAGESThis constant is deprecated.

SEND_SMS

SMS(문자)보내기 권한

 SET_ACTIVITY_WATCHER

액티비티 감시등 권한

 SET_ALARM알람 관련 권한
 SET_ALWAYS_FINISH

액티비티 관리(종료) 권한

 SET_ANIMATION_SCALEModify the global animation 
scaling factor.
 SET_DEBUG_APPConfigure an application 
for debugging.
 SET_ORIENTATION화면 방향 지정 권한

SET_POINTER_SPEEDAllows low-level access to 
setting the pointer speed.
 SET_PREFERRED_APPLICATIONSThis constant is deprecated.
 SET_PROCESS_LIMIT실행 프로세스 제한 권한
 SET_TIME

시간 관리 권한

 SET_TIME_ZONE타임존 관리 권한
 SET_WALLPAPER배경화면 관리 권한
 SET_WALLPAPER_HINTS배경화면 힌트 관리 권한

SIGNAL_PERSISTENT_PROCESSESAllow an application to request that
 a signal be sent to all persistent 
processes
 STATUS_BAR

상태표시줄 관련 권한

 SUBSCRIBED_FEEDS_READ

SUBSCRIBED_FEEDS_WRITE
 SYSTEM_ALERT_WINDOW

UPDATE_DEVICE_STATSAllows an application to update 
device statistics.
 USE_CREDENTIALSAllows an application to request 
authtokens from the AccountManager
 USE_SIPAllows an application to use 
SIP service
 VIBRATE

진동 관련 권한

 WAKE_LOCK화면 켜기 관련 권한(알람.)

WRITE_APN_SETTINGSAPN 쓰기 관련 권한
 WRITE_CALENDAR캘린더 쓰기 관련 권한

WRITE_CONTACTS주소록 쓰기 관련 권한
 WRITE_EXTERNAL_STORAGE외부저장장치 관련 권한
 WRITE_GSERVICES

Allows an application to modify 
the Google service map.

 WRITE_HISTORY_BOOKMARKS

웹 즐겨찾기등 쓰기 권한

(not read)

 WRITE_PROFILE

사용자프로필쓰기 권한

not read

 WRITE_SECURE_SETTINGS
 WRITE_SETTINGS시스템 설정 쓰기 권한
 WRITE_SMSSMS(문자) 쓰기 권한
 WRITE_SOCIAL_STREAM

WRITE_SYNC_SETTINGS



출처: http://jwandroid.tistory.com/153 [초보 플밍지기]

반응형
Posted by blueasa
, |

[TroubleShooting]


[에러메시지]

NotSupportedException: .... System.Net.WebRequest.GetCreator (System.String prefix) System.Net.WebRequest.Create (System.Uri requestUri)


PC/iOS에서는 잘 되는데 Android에서 위와 같은 NotSupportedException이 난다.(현재 Unity v5.6.5f1)

검색해보니 게임코디에 아래와 같은 답변을 해주신 분이 있다.



  비회원: 
kimsama

NotSupportedException: .... System.Net.WebRequest.GetCreator (System.String prefix) System.Net.WebRequest.Create (System.Uri requestUri) 모바일에서 위의 에러로 인해 HttpWebReaquest 를 사용하지 못하는 경우라면 여기 링크의 내용 참고하시기 바랍니다. http://www.vovchik.org/blog/13001 간단하게 우회하는 방법이 나와 있습니다.

[출처] http://lab.gamecodi.com/board/zboard.php?id=GAMECODILAB_QnA_etc&page=2&sn1=&divpage=1&sn=off&ss=on&sc=on&select_arrange=headnum&desc=asc&no=2617



그래서 링크(http://www.vovchik.org/blog/13001)에서 말해준 대로 Wrapping을 해서 Android에서 돌려보니 잘된다!!

(kimsama님 감사합니다!)


내가 추가 및 수정한 소스는 아래와 같다.


// Wrapper Class
using System;
using System.Net;

public class HttpRequestCreator : IWebRequestCreate 
{
	public WebRequest Create(Uri uri)
	{
		return new HttpWebRequest(uri);	
	}
}


    //Get size of the asset
    HttpRequestCreator cHttpRequestCreator = new HttpRequestCreator();            // modify
    System.Net.WebRequest req = cHttpRequestCreator.Create(new Uri(assetURL));    // modify
    req.Method = "HEAD";

    float ContentLength;
    using (System.Net.WebResponse resp = req.GetResponse())
    {
        float.TryParse(resp.ContentLength.ToString(), out ContentLength);
    }

    while (!download.isDone)
    {
        if (progressBar != null)
	    {
            progressBar.LabelInformations = "Downloading Assets";
            progressBar.Progress = download.progress;
            progressBar.AssetSize = ContentLength / 1000000; //(Mb)
	    }
	    yield return null;
    }






- CDN에 있는 파일 사이즈를 어떻게 알 수 없나 하고 찾다가 테스트 해보고 잘 되길래 올려 놓음.

  (PC/iOS는 잘되는데 Android가 에러나서 위와 같이 고침)

    1. //Get size of the asset
    2. System.Net.WebRequest req = System.Net.HttpWebRequest.Create(assetURL);
    3. req.Method = "HEAD";
    4. float ContentLength;
    5. using (System.Net.WebResponse resp = req.GetResponse())
    6. {
    7. float.TryParse(resp.ContentLength.ToString(), out ContentLength);
    8. }
    9. while (!download.isDone)
    10. {
    11. if (progressBar != null)
    12. {
    13. progressBar.LabelInformations = "Downloading Assets";
    14. progressBar.Progress = download.progress;
    15. progressBar.AssetSize = ContentLength / 1000000; //(Mb)
    16. }
    17. yield return null;
    18. }


[출처] https://answers.unity.com/questions/1035361/get-size-of-an-online-assetbundle-and-progress-in.html




반응형
Posted by blueasa
, |


[링크] https://github.com/JanKallman/EPPlus


반응형
Posted by blueasa
, |

[주의] 레지스트리를 수정하는 내용이니 주의해서 사용하세요.



C# 으로 OleDB를 이용해서 Excel을 읽어 들이고, Sqlite(.db)로 변환하는 Converter를 만들어서 사용하는 데


긴 문자열을 넣었더니 잘려서 컨버팅 되길래 확인해보니 255 글자 제한이 걸려 있다.


검색해서 확인해보니 여러가지 해결 방법들이 포스팅 돼 있는데 조금씩 안맞아서 확인해보고 정리해서 올려 놓는다.



[레지스트리 수정으로 255 글자 제한 풀기]


아래 버전 및 OS bit에 맞는 레지스트리를 찾아가서 TypeGuessRows 값을 0으로 바꾸면 된다.

(참고: 개발에 사용된 Excel 버전임. 윈도우 설치된 엑셀 버전이 아님)

(기본 값은 8인데, DataSet을 만들 때 기본으로 설정 된 윗 8줄에 있는 가장 큰 글자수를 DataType 길이로 잡는다고 한다.

 기본 글자 제한은 255자이고, 0으로 바꾸면 전체를 검사해서 DataType 길이로 잡는다고 함.)


[주의] 성능상의 이유로 글자수를 제한(Default:8) 하는 거라고 하니 감안해서 사용할 사람만 하기를..


  [Windowns 32bit]

Excel 2000, 2003 (xls)

  HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Excel

  (Excel 97 = 3.5)


- Excel 2013 (xlsx)

  HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\15.0\Access Connectivity Engine\Engines\Excel

  (2016 = 16.0, 2013 = 15.0, 2010 = 14.0, 2007 = 12.0)


  [Windowns 64bit]

Excel 2000, 2003 (xls)

  HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Jet\4.0\Engines\Excel

  (Excel 97 = 3.5)


- Excel 2013 (xlsx)

  HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Office\15.0\Access Connectivity Engine\Engines\Excel

 (2016 = 16.0, 2013 = 15.0, 2010 = 14.0, 2007 = 12.0)



[레지스트리 파일 다운로드]

Fix_255_Char_32bit_Excel_2000_2003.reg

Fix_255_Char_32bit_Excel_2007.reg

Fix_255_Char_32bit_Excel_2010.reg

Fix_255_Char_32bit_Excel_2013.reg


Fix_255_Char_64bit_Excel_2000_2003.reg

Fix_255_Char_64bit_Excel_2007.reg

Fix_255_Char_64bit_Excel_2010.reg

Fix_255_Char_64bit_Excel_2013.reg



    [Excel 데이터 수정으로 255 글자 제한 풀기] (확인 안해봤음)


- 위에도 적었지만 DataSet을 만들 때 기본으로 설정 된 윗 8줄에 있는 가장 큰 글자수를 DataType 길이로 잡는다고 한다.

  8줄 이내에 255 글자 이상의 사용하지 않는 Dummy 데이터를 넣으면 해결 된다고 함. 




[참조] http://www.todal.net/241?category=367351

[참조] http://it-developer.tistory.com/427

[참조] http://lemondory.tistory.com/129

[참조] http://ariswear.tistory.com/37

반응형
Posted by blueasa
, |

앞서 정리한 스탑코루틴의 활용 1의 내용으로 개념을 잡고 넘어가자.

 

 

코루틴 호출은 script.StartCoroutine() 으로 호출하게 되어있고,

앞부분을 생략하고 StartCoroutine()으로 호출하면

자동적으로 콜링한 스크립트에서 제어하는 코루틴으로 호출되도록 되어있다.

 

즉 StartCoroutine( ~~~ ) 를 포함하여 코루틴을 호출하면 이 코루틴은 자신을 콜링한 스크립트가 달려있는 게임오브젝트에 할당되는 것이다.

 

이것이 적용되어 해당 게임오브젝트를 disable시키면,

그 게임오브젝트에 할당되어 돌아가던 모든 코루틴은 정지된다. (StopAllCoroutine의 효과)

 

 

 

 

 

<예시1>

 

 

위의 그림을 참고하자.

 

위 그림은 이런 상황을 거친 결과다

Scr Main===

 start()

{

StartCoroutine(A);

}

 

Scr Manager====

{

GameObj1.GetComponent<Scr Main>().StartCoroutine(B);

GameObj2.GetComponent<Scr Main>().StartCoroutine(B);

 

GameObj1.GetComponent<Scr Main>().StartCoroutine(C);

GameObj2.GetComponent<Scr Sub>().StartCoroutine(C);

}

 

1. Main 스크립트는 생성되면서 동시에 코루틴A를 호출한다. 그래서 Main 스크립트가 붙어있는 게임오브젝트1,2에서 각각 시작되었다.

 

2 Manager에서 게임오브젝트1의 Main에 B와 C를 호출했다. (타 오브젝트, 타 스크립트에서 호출한 경우 )

이 때는 Manager의 게임오브젝트에 할당되지않고 호출타겟을 찾아간다.

마찬가지로 게임오브젝트 2 에는 Main에 코루틴B를, Sub에 코루틴 C를 호출하였다.

 

그 결과 위의 그림처럼 코루틴이 붙어 있게 된 모양.

 

 

 

Q. 여기서 게임오브젝트1의 Main에서 올스탑 코루틴을 콜하거나, 게임오브젝트 1번을 disable하면 어떻게 될까?

A. 게임오브젝트1의 코루틴 A,B,C가 종료된다.

 

Q. 게임오브젝트2를 disable 한다면?

A. 게임오브젝트의 Main의 A,B와 Sub의 C가 모두 종료된다.

 

Q. 임오브젝트2의 Main에서 StopAllCoroutine()을 호출한다면?

A. 게임오브젝트2의 Main의 A,B만 종료되고 Sub의 C는 살아있다.

 

 

위 상황만으로도 어느정도 코루틴들이 어떤 오브젝트의 어느스크립트에 포함되어 돌아가는가 유추할수 있다.

어려운 부분이 있다면 비슷한 내용으로 테스트를 해보길 바란다.

 

 

 

 

이러한 내용을 설명한 이유는 

코루틴에는 정립해야할 내용이 하나 더 있기 때문이다.

 

코루틴이 어떤 스크립트에 매칭되어 있는가 머리속에 그려진다면 스크립트에서 다른오브젝트의 스크립트의 코루틴을 호출하여 가지고 있을수 있다는 것을 알수 있다.

 

 

예를 들면

Scr A에서 선언한 변수 co가 있다고 해보자. 

 

coroutine co = GameObj1.GetComponent<Scr Main>().StartCoroutine(B);

 

위와같이 변수에 다른오브젝트 코루틴을 담아두었다.

 

Q.이것을 멈추기 위해서 어떻게 하겠는가?

 

StopCoroutine( co );

라고 생각하기 쉽지만, 이렇게 멈추게 되면 (코루틴이 멈추긴 한다)  

 

Coroutine continue failure  라는 에러메세지 가 발생한다.

 

정확하게 멈추기 위해서는

 

GameObj1.GetComponent<Scr Main>().StopCoroutine( co );

 

과 같이 코루틴이 할당된 스크립트에서 스탑을 시켜줘야한다.

 

 

위의 에러메세지가 나타나는 이유는 다른스크립트에서 코루틴을 스탑시키면 코루틴은 멈추지만,

기존에 코루틴을 돌리고 있던 스크립트에서 다른동작을 하고 다시 코루틴을 찾아올때 (코루틴은 IEnumerator 로 돌아간다)

이미 코루틴이 사라져서 찾을수 없게 되기 때문인것 같다.

(정확한 이유를 알기 위해선 유니티 엔진 내부를 보아야 할것이다) 



출처: http://qits.tistory.com/entry/StopCoroutine-의-활용-2-Coroutine-continue-failure [Quiet, In The Storm...]

반응형
Posted by blueasa
, |

애플에서 제공한 문서 에서 자세한 내용을 확인할 수 있습니다.

<중요> 테스트를 진행하 때는 반드시 로컬 IPv6 네트워크만 활성화 되어 있어야 합니다. 예를 들어 셀룰러 서비스가 켜져 있다면 비활성화 하여 Wi-Fi만으로 테스트가 진행되도록 설정해야 합니다.

환경구성 개요

(1) MAC 컴퓨터 (혹은 노트북)이 Wi-Fi가 아닌 방식으로 인터넷에 연결되어 있는 지 확인하세요.

(2) 시스템 환경 설정을 실행하세요.

(3) Option(Alt) 키를 누른 상태로 공유 메뉴를 실행합니다. 5번 항목까지 **Option(Alt)**키를 누른 채로 유지해 주세요.

![공유 항목 열기] (https://developer.apple.com/library/mac/documentation/NetworkingInternetWeb/Conceptual/NetworkingOverview/art/systempreferences_sharing_2x.png)

(4) 공유 의 서비스 중 인터넷 공유를 선택합니다.

![인터넷 공유 설정] (https://developer.apple.com/library/mac/documentation/NetworkingInternetWeb/Conceptual/NetworkingOverview/art/systempreferences_sharing_internetsharing_2x.png)

(5) Option(Alt) 키에서 손을 뗍니다. (release를 뭐라고 번역해야 하죠????)

(6) 아래 쪽에 보이는 NAT64 네트워크 생성 체크 박스를 선택합니다.

![로컬 IPv6 NAT64 네트워크 활성화] (https://developer.apple.com/library/mac/documentation/NetworkingInternetWeb/Conceptual/NetworkingOverview/art/systempreferences_sharing_internetsharing_ipv6_2x.png)

(7) 연결 공유 콤보박스에서 이더넷을 선택합니다.

랜선으로 연결된 경우 이더넷을 선택합니다.
이외의 경우 자신의 MAC이 인터넷에 연결된 방식을 골라서 선택하시면 됩니다.

![자신의 MAC이 인터넷에 연결된 방식 선택] (https://developer.apple.com/library/mac/documentation/NetworkingInternetWeb/Conceptual/NetworkingOverview/art/systempreferences_sharing_internetsharing_connection_2x.png)

(8) 다음 사용항목에서 Wi-Fi를 선택합니다.

![Wi-Fi 공유 활성화] (https://developer.apple.com/library/mac/documentation/NetworkingInternetWeb/Conceptual/NetworkingOverview/art/systempreferences_sharing_internetsharing_ports_2x.png)

(9) Wi-Fi 옵션... 버튼을 클릭하여 네트워크 이름과 보안 옵션(암호)를 설정합니다.

![Wi-Fi 네트워크 옵션 설정] (https://developer.apple.com/library/mac/documentation/NetworkingInternetWeb/Conceptual/NetworkingOverview/art/systempreferences_sharing_internetsharing_wi-fioptions_button_2x.png)

![Wi-Fi 옵션 설정창] (https://developer.apple.com/library/mac/documentation/NetworkingInternetWeb/Conceptual/NetworkingOverview/art/systempreferences_sharing_internetsharing_wi-fioptions.png)

(10) 인터넷 공유 체크박스를 선택하여 네트워크 공유를 활성화합니다.

![인터넷 공유 활성화] (https://developer.apple.com/library/mac/documentation/NetworkingInternetWeb/Conceptual/NetworkingOverview/art/systempreferences_sharing_internetsharing_sharingenabled_2x.png)

(11) Wi-Fi를 통해 이더넷(랜) 네트워크를 공유하려면 Wi-Fi를 켜야 합니다. 이후 인터넷 공유를 하겠냐는 대화창에서 시작을 누르시면 인터넷 공유가 시작됩니다.

![인터넷 공유 시작] (https://developer.apple.com/library/mac/documentation/NetworkingInternetWeb/Conceptual/NetworkingOverview/art/systempreferences_sharing_internetsharing_enabledconfirmation.png)

![인터넷 공유가 되고 있는 모습] (https://developer.apple.com/library/mac/documentation/NetworkingInternetWeb/Conceptual/NetworkingOverview/art/internet_sharing_wi-fi_menu_2x.png)




[출처] https://gist.github.com/stzhyegeun/48a4937b869897f7e7c1f479a74fe3bf

반응형
Posted by blueasa
, |
Here is an advanced version, Just for fun. :p
Features
  • Multiple Define Symbols
  • Safety
  • Runs when Compile ends
  • Removes Duplicates
Installation
  1. Download the Script or Copy/Paste it from the Below
  2. Open Script
  3. Go to Symbols property and add your own symbols
  4. Go back to Unity and wait for compile ends
  5. All done, now check Player Settings, The symbols added
Code (CSharp):
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using UnityEngine;
  5. using UnityEditor;
  6.  
  7. /// <summary>
  8. /// Adds the given define symbols to PlayerSettings define symbols.
  9. /// Just add your own define symbols to the Symbols property at the below.
  10. /// </summary>
  11. [InitializeOnLoad]
  12. public class AddDefineSymbols : Editor
  13. {
  14.  
  15.     /// <summary>
  16.     /// Symbols that will be added to the editor
  17.     /// </summary>
  18.     public static readonly string [] Symbols = new string[] {
  19.         "MYCOMPANY",
  20.         "MYCOMPANY_MYPACKAGE"
  21.     };
  22.  
  23.     /// <summary>
  24.     /// Add define symbols as soon as Unity gets done compiling.
  25.     /// </summary>
  26.     static AddDefineSymbols ()
  27.     {
  28.         string definesString = PlayerSettings.GetScriptingDefineSymbolsForGroup ( EditorUserBuildSettings.selectedBuildTargetGroup );
  29.         List<string> allDefines = definesString.Split ( ';' ).ToList ();
  30.         allDefines.AddRange ( Symbols.Except ( allDefines ) );
  31.         PlayerSettings.SetScriptingDefineSymbolsForGroup (
  32.             string.Join ( ";", allDefines.ToArray () ) );
  33.     }
  34.  
  35. }
Thanks.




[출처] https://forum.unity.com/threads/scripting-define-symbols-access-in-code.174390/

반응형
Posted by blueasa
, |

웃는 코리~

냥이/Cori:ander / 2018. 4. 3. 13:04


반응형

'냥이 > Cori:ander' 카테고리의 다른 글

[인스타그램] 코리 인스타그램 시작~  (0) 2020.02.06
Posted by blueasa
, |