개발(24)
-
유니티 iOS에 플러그인 연결하기
준비물 최신 mac os, xcode 1. Plugins/iOS/ 내부에 mm확장자의 코드 작성 extern "C" { int PluginFunc(){ return 999; } } 2. C#코드 작성 using System.Runtime.InteropServices; public static class PluginClass { #if UNITY_IOS [DllImport("__Internal")] private static extern int PluginFunc(); public static int Number{ get { return PluginFunc(); } } #endif } 3. 결과 using UnityEngine; public class GameManager : MonoBehaviour { ..
2021.06.21 -
스크롤뷰에서 이벤트핸들러 공유하기
using UnityEngine; using UnityEngine.UI; using UnityEngine.EventSystems; public class Item : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDragHandler { void OnBeginDrag(PointerEventData eventData) { //구현된 기능 } void OnDrag(PointerEventData eventData) { //구현된 기능 } void OnEndDrag(PointerEventData eventData) { //구현된 기능 } } 유니티에서 스크롤뷰 안에 있는 아이템을 커스텀하는 경우가 있다. 해당 아이템에서 위에처럼 직접 드래그나 클릭관련 이벤트를 구현..
2021.05.26 -
유니티에서 sns로 데이터보내기(공유하기)
void Share() { Texture2D tex = 공유하고자하는 이미지 string filePath = Path.Combine(Application.temporaryCachePath, "shared_img.png"); File.WriteAllBytes(filePath, tex.EncodeToPNG()); Destroy(tex); //여기엔 sns에 전송할 각각의 텍스트 정보를 적으면 된다. string subject = ""; string title = ""; string message = ""; AndroidJavaClass jc = new AndroidJavaClass("android.content.Intent"); AndroidJavaObject jo = new AndroidJavaObject..
2021.04.21 -
유니티 발열 이슈에 관한 정리
1. 이미지를 아틀라스로 정리했는가? - 너무 많은 이미지가 개별로 되어있다면 드로우콜이 많이 발생하여 연산량이 엄청 많아진다. - 대부분의 발열문제는 드로우콜때문이다. 2. 상시로 Thread를 돌리나? - Thread의 공회전 또한 발열을 발생시키는 원인이지만, 코루틴으로 대체하면 대부분 해결 - 어쩔 수 없이 사용해야한다면 정말 필요할때만 쓰고 sleep시켜버리거나 스레드를 종료시키자. 3. update문이 많은가? - 왠만하면 반복문은 필요할때만 쓰는 코루틴으로 대체하자. - 쓸데없이 계속된 연산은 발열과 배터리 소모율을 높이는 원인이다. 4. 프레임수가 너무 높지 않은가? - 게임 특성상 성능을 이유로 초당계산량이 꽤 많은데, 30프레임이나 60프레임으로 제한하자. - 사실 이건 3번만 해결되면..
2021.04.16 -
유니티로 안드로이드 갤러리 호출
1 2 3 4 5 6 7 8 9 10 11 public void OpenGallery() { AndroidJavaClass unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); AndroidJavaObject unityActivity = unityPlayer.GetStatic("currentActivity"); AndroidJavaClass intentStaticClass = new AndroidJavaClass("android.content.Intent"); string actionView = intentStaticClass.GetStatic("ACTION_VIEW"); AndroidJavaClass uriClass = new An..
2021.04.13 -
유니티 안드로이드에 so 플러그인 연결하기
1. visual studio installer에서 c++를 사용한 모바일 개발이라는 개발도구들을 다운받아 설치한다. 2. 새로만들기로 동적 공유 라이브러리(Android) 탬플릿을 사용하자. 3. c++ 헤더에 사용할 명령어들을 적어놓자 extern "C" { namespace 사용할 이름 { 사용할 클래스 및 함수들 } } 4. 이후 빌드를 하면 so파일이 생성된다. 5. 생성된 so 파일을 유니티 Assets/Plugins/Android 안에 넣어주자. 6. 유니티 스크립트로 사용할 코드를 불러오자. using System.Runtime.InteropServices; public static class Myclass { [DllImport("사용할 DLL이름")] private static exte..
2021.04.01