본문 바로가기
728x90
반응형

PROGRAMING📚/Unity📑109

[UNITY]여러개의 Task 받아서 처리하기(Task.WhenAny/WhenAll) 여러개의 Task 받아서 처리하기 public static Task WhenAny (params Task[] tasks); Task.WhenAny 메서드는 여러 개의 Task 중 하나가 완료될 때까지 대기하는 데 사용된다 tasks 는 비동기 작업(Task) 의 배열로 배열에 있는 작업 중 하나가 완료 될 때까지 대기하고 완료가 되면 Task 의 Task 객체가 반환된다 Task.WhenAny 는 여러 작업중 가장 빨리 완료되는 작업을 처리하거나, 병렬 작업중 하나를 선택하는데 사용한다 Task task1 = SomeAsyncOperation1(); Task task2 = SomeAsyncOperation2(); Task task3 = SomeAsyncOperation3(); Task whenAnyTas.. 2024. 4. 8.
[UNITY]Task.Start/Task.Run 메소드 Task.Start와 Task.Run 는 둘다 비 동기 작업을 시작하는데 사용되는 메소드이다 Task.Start 메소드 public void Start (); public void Start (System.Threading.Tasks.TaskScheduler scheduler); Task.Start 는 새로운 Task 인스턴스를 생성하고 시작하는데 사용된다 기본적으로 TaskScheduler.Current 에서 실행된다 주로 커스텀 스케줄링 로직을 사용하거나 특정 스레드에서 작업을 실행 하려는 경우 사용된다 Task.Factory.StartNew 와 유사한 동작을 한다 Task 생성자를 호출해서 현재 작업을 시작하고 스케줄러에 대한 실행을 예약한다 using System; using System.Thre.. 2024. 4. 8.
[UNITY]Task.ConfigureAwait 메서드 Task.ConfigureAwait 메서드 public System.Runtime.CompilerServices.ConfiguredTaskAwaitable ConfigureAwait (bool continueOnCapturedContext); public System.Runtime.CompilerServices.ConfiguredTaskAwaitable ConfigureAwait (System.Threading.Tasks.ConfigureAwaitOptions options); Task.ConfigureAwait는 사용하면 비동기 작업의 실행 컨텍스트를 제어하여 UI응답성을 향상시키고 데드락을 피하며 성능을 최적화 할 수 있다 비동기 작업이 완료 된 후에 이어지는 코드 블록이 어떤 스레드 컨텍스트에서 실.. 2024. 4. 8.
[UNITY]비동기 작업 : Task 메서드 사용하는 방법 [UNITY]비동기 프로그램 만들기: async / await 비동기 프로그램 만들기: async / await 프로그래밍 방식에는 동기식과 비동기식이 있다 동기식은 순차적인 실행 방식을 의미하고 일반적으로 동기식 작업 방식으로 진행이 된다 비동기식은 동기 j2su0218.tistory.com Task / Task Task 메서드를 사용하기 위해서는using System.Threading.Tasks; 네임스페이스가 필요하다 using System.Threading.Tasks; 비동기 메서드의 반환 형식을 크게 3가지로 나누었을 때 Task 는 작업을 수행하지만 아무 값도 반환하지 않는 비동기 메서드의 경우에 사용하고 Task는 값을 반환하는 비동기 메서드의 경우 사용하고 void 는 이벤트 처리기의 경우.. 2024. 4. 8.
[UNITY]비동기 프로그램 만들기: async / await 비동기 프로그램 만들기: async / await 프로그래밍 방식에는 동기식과 비동기식이 있다 동기식은 순차적인 실행 방식을 의미하고 일반적으로 동기식 작업 방식으로 진행이 된다 비동기식은 동기식과는 달리 여러작업들을 동시에 실행 하는 방식을 말한다 이런 비동기식 처리는 동시에 여러작업을 수행하여 작업이 완료 될 때 까지 기다리지 않고 다음 코드를 실행 할 수 있게 해준다 비동기 프로그래밍은 유니티에서 자주 사용되며, 네트워크 요청, 파일 로딩 등과 같은 작업을 효율적으로 처리할 수 있도록 도와준다 이러한 비동기식 작업은 구조를 정확하게 파악하지 않고 구현 하면 무한 루프, 무한 대기 상태에 빠지게 된다 동기 처리는 실행순서가 보장되지만 속도가 느리고 비동기 처리는 속도가 빠르지만 실행 순서가 보장되지 .. 2024. 4. 5.
[UNITY]파일 선택 다이얼로그 사용하기: EditorUtility.OpenFilePanel 함수 사용법 Unity 에디터 환경에서 파일 선택 다이얼로그를 사용하여 사용자가 원하는 파일을 선택하는 방법 Unity 에서는 게임 또는 앱을 개발하는 동안 사용자에게 파일 선택 기능을 제공해야할 때가 있다 예를 들어 사용자가 특정 파일을 열거나 가져오는 기능이 필요한 경우 EditorUtility.OpenFilePane() 를 사용해서 파일 선택 대화 상자를 열고 사용자가 원하는 파일을 선택 할 수 있게 할 수 있다 string EditorUtility.OpenFilePanel(string title, string directory, string extension) 다음과 같이 사용 할 수 있고 title 은 파일 탐색 대화 상자의 제목, directory 는 파일 탐색 상자가 열릴 때 표시할 기본 디렉토리, ex.. 2024. 4. 2.
[UNITY]포톤(PUN2) 콜백 코드 정리 포톤(PUN2) 콜백 코드 정리 포톤에서 제공하는 콜백함수를 사용하기 위해서는 상단에 using Photon.Pun; 을 선언해주고 MonoBehaviour 를 MonoBehaviourPunCallbacks 로 변경해줌 using Photon.Pun; public class NetworkManager : MonoBehaviourPunCallbacks 크게 사용하는 콜백함수를 정리하면 서버 연결 방 생성하기 방 참여하기 방 만들기/참여 랜덤으로 방 참가하기 방 나가기 다음 기능을 구현할 수 있다 서버 연결하기 PhotonNetwork.ConnectUsingSettings(); Photon Editer 에 설정된 값으로 포톤 사용자들을 서버에 연결 시켜준다고함 public void Connect() => P.. 2024. 4. 2.
[UNITY]Photon PUN2(4) - 플레이어 세팅 플레이어 안에 새로운 스크립트(PlayerSetup)를 만들어 준다 그리고 PlayerCtrl과 Camera를 public 으로 선언해준다 public PlayerCtrl PlayerCtrl; public GameObject Camera; 그리고 전에 만들어준 Player 프리팹을 열어서 MainCamera와 PlayerCtrl 설정을 비활성화를 해주었다 PlayerSetup 스크립트 컴포넌트를 넣어주고 다음과 같이 비어있는 오브젝트들을 채워 넣어줬다 그리고 PlayerSetup 스크립트 안에 다음과 같이 함수를 하나 만들어서 플레이어가 생성되면 활성화 될 수 있게 해주었다 //PlayerSetup Script public void IsLocalPlayer(){ PlayerCtrl.enabled = tr.. 2024. 3. 18.
[UNITY]Photon Pun2 (3) - 캐릭터 설정 해주기 플레이어 캐릭터 스크립트(PlayerCtrl)를 만들어서 캐릭터가 움직이도록 만들어준다 using System.Collections; using UnityEngine; public class PlayerCtrl : MonoBehaviour { [Header("Player Animaion")] public Animator playerAnimation; [Space] private float speed=10f; private float jumpForce = 5f; [Space] private Rigidbody characterRgb; private void Start() { characterRgb = GetComponent(); } private void Update() { if(Input.GetKeyDow.. 2024. 3. 18.
[UNITY]Photon PUN2 (2) - 서버 만들기 스크립트 작성 하이어라키 안에 새로운 오브젝트를 만들어 주고 새로운 스크립트(RoomManager.sc)를 하나 생성해준다 스크립트를 열어서 PUN 라이브러리를 사용하기 위해서 상단에 using Photon.Pun; 를 선언해주고 using Photon.Pun; MonoBehaviour 를 MonoBehaviourPunCallbacks 로 변경해준다 public class RoomManager : MonoBehaviourPunCallbacks 이제 PhotonNetwork 와 연결해주기 위해서 Start() 함수 안에 ConnectUsingSettings() 를 작성해 주었다 void Start() { Debug.Log("connecting..."); PhotonNetwork.ConnectUsingSettings();.. 2024. 3. 18.
[UNITY] Photon PUN 2 (1) - 포톤 계정 만들기 Photon PUN 2- 포톤 계정 만들기 (1) Photon Unity Networking (PUN) 멀티플레이어 게임용 유니티 패키지입니다. 유연한 매치메이킹을 통해 플레이어들은 객체들이 네트워크를 통해 동기화될 수 있는 룸으로 이끌어 줍니다. RPC, 사용자 정의 속성 또는 "저 수준" Photon 이벤트들은 이 기능의 일부입니다. 빠르고 (선택적으로) 신뢰할 수 있는 커뮤니케이션은 전용 Photon 서버를 통해 이루어지므로 클라이언트들은 1 대 1 연결이 필요하지 않습니다. PUN 2 FREE 받기 PUN 2 - FREE | 네트워크 | Unity Asset Store Get the PUN 2 - FREE package from Photon Engine and speed up your game d.. 2024. 3. 18.
[UNITY] AddForce , AddTorque,ForceMode 의 종류 힘을 주는 방법은 AddForce 와 AddTorque 두 가지가 존재한다 AddForce 정의 된 축을 기준으로 게임 오브젝트를 미는 힘 Vector의 방향과 크기로 힘을 준다 m_Rigidbody.AddForce(transform.up * m_Thrust); AddTorque 정의 된 축을 기준으로 게임 오브젝트를 회전시키는 힘 rb.AddTorque(transform.up * torque * turn); ForceMode는 힘을 주는 방식을 말한다 가속을 추가해주는 방식, 움직이고 있는 중에 사용하기 적합 ForceMode.Force : 무게를 적용함 ForceMode.Acceleration : 무게를 적용하지 않음 순간적으로 가속을 추가해주는 방식, 정지상태에서 이동을 시작하려 할때 사용하기 적합.. 2024. 3. 18.
[UNITY]Photon Cloude, 멀티 게임 구현하기(3) 보호되어 있는 글 입니다. 2024. 2. 23.
[UNITY]Photon Cloude, 멀티 게임 구현하기(2) 보호되어 있는 글 입니다. 2024. 2. 23.
[UNITY]Photon Cloude, 멀티 게임 구현하기(1) 보호되어 있는 글 입니다. 2024. 2. 14.
[UNITY]Google Play Console 계정 만들기 & 앱(.abb) 올리기 빌드한 안드로이드 앱을 PlayStore에 올리기 위해서는 구글 플레이 콘솔( Google Play Console )에서 관리를 해주어야 한다 https://play.google.com/console/about/ Google Play Console | Google Play Console 앱과 게임이 성장할 수 있도록 사용자에게 도달하고 사용자 참여를 유도하는 데 도움이 될 도구, 프로그램, 통계를 이용하세요. play.google.com Google Play Console 계정 만들기 개발자 등록비는 25달러 이고 구글 측에 납부하는 수수료이다 한번 결제시 평생 이용 할 수 있음 구매하고 약관 까지 진행되면 Google Play Console 화면으로 들어온다 앱을 게시라혀면 개발자 계정 설정을 완료 해.. 2024. 2. 14.
[UNITY]Error : "Android AppBundle 이 서명되지않았습니다" 해결하기 "Android AppBundle 이 서명되지않았습니다" 해결하기 구글 플레이 콘솔에 빌드한 .aab 파일을 올렸는데 다음과 같이 [ Android AppBundle 이 서명되지않았습니다 ] 라고 나오면서 앱이 등록 되지 않는다면 1 ) 유니티 안에서 Keystore 을 생성해 주었는지 확인을 하자 [유니티Unity3D]Keystore(키스토어) 생성하기 Keystore(키스토어) 생성하기 유니티를 빌드 하기 위해서는 반드시 Keystore를 생성해주어야하는데 생성하는데 복잡하지 않아서 정리 해보려고 한다. File->Build Settings으로 들어가서 Build Settings 에서 P j2su0218.tistory.com 2) Java Keystore 의 키 내보내기 및 업로드 1️⃣ 암호화 공개.. 2024. 2. 13.
[UNITY] ERROR : Job failed with exception: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. Job failed with exception: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.InvalidOperationException: Insecure connection not allowed at (wrapper managed-to-native) UnityEngine.Networking.UnityWebRequest.BeginWebRequest(UnityEngine.Networking.UnityWebRequest) Player Setting > Player > Other Setting > Allow Downloads over HTTP를 Al.. 2024. 2. 11.
[UNITY]Android SDK is missing required platform API Android SDK 업데이트 하기 Android 빌드를 하다보면 Target API level 을 선택해서 빌드를 해야하는데 사용중인 Unity 버전에서 선택한 Target 이 없는 경우, 다음과 같이 Android SDK is missing required platform API 라는 문제가 발생하는 경우가 있다 이 문제는 현재 Unity 환경에서 API level 34를 타겟팅하기 위한 SDK 버전이 없다는 뜻이다 다음과 같이 Update Android SDK 랑 Use Highest Intalled Update Android SDK 를 선택하면 다음과 같이 PowerShell 이 열리면서 설치를 하지만 aab 빌드를 하면 위와 같은 버그가 생기면서 빌드가 되지 않는다 Update Android S.. 2024. 2. 8.
[UNITY]Error : Configure project :launcherWARNING: The option setting 'android.enableR8=false' is deprecated.It will be removed in version 5.0 of the Android Gradle plugin.You will no longer be able to disable R8 문제 해결 방법 보호되어 있는 글 입니다. 2024. 2. 8.
[UNITY]Errors:Starting a Gradle Daemon, 1 incompatible Daemon could not be reused, use --status for details 에러 해결과정 Starting a Gradle Daemon, 1 incompatible Daemon could not be reused, use --status for details > Configure project :launcher WARNING: The option setting 'android.enableR8=false' is deprecated. It will be removed in version 5.0 of the Android Gradle plugin. You will no longer be able to disable R8 Gradle 데몬을 시작하면 호환되지 않는 데몬 1개를 재사용할 수 없습니다. 자세한 내용은 --status를 사용하세요. > 프로젝트 구성 :런처 경고: 'android.enabl.. 2024. 2. 6.
[UNITY]Play In-App Update (인앱 업데이트) 방법 Play In-App Update (인앱 업데이트) 방법 패키지 다운받기 https://developers.google.com/unity/packages?hl=ko#play_in-app_update Unity용 Google 패키지 살펴보기 | Google for Developers 이 페이지는 Cloud Translation API를 통해 번역되었습니다. Switch to English Unity용 Google 패키지 살펴보기 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. Unity용 Google developers.google.com 업데이트의 종류는 두 가지가 있는데 유연한 업데이트와 즉시 업데이트가 있다 1. 유연한 업데이트 원활한 상태 모니터링 기능과 함께 백그라운.. 2024. 2. 3.
error CS0433: The type 'IPurchaseReceipt' exists in both 'Security, Version=1.0.7698.24420, Culture=neutral, PublicKeyToken=null' and 'UnityEngine.Purchasing.SecurityCore, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' 오류 해결하기 1. Removed In App Purchasing package (from Window -> Package Manager) 2. Deleted Plugins/UnityPurchasing from my project (from Project viewer) 3. Quit and relaunched Unity 4. Reinstalled In App Purchasing (from Window -> Package Manager) 5. Imported In-App Purchasing (from Window -> General -> Services, In-App Purchasing) 6. Quit and relaunched Unity 7. (important!) Commented out all lines of IA.. 2023. 12. 20.
[UNITY]휠 콜라이더(Wheel Collider) 사용해서 차량 만들기(1) 휠 콜라이더(Wheel Collider) 사용해서 차량 만들기 최근에 카트를 만들어야하는 일이 생겨서 다양한 컨트롤 방법을 사용했으나 다음과 같이 키보드의 입력으로 Vector3(x값,0,y값) 왼쪽,오른쪽으로 이동하는 것까지는 괜찮으나 캐릭터가 90도 회전을 했을 때 x와 z의 축이 달라지면서 회전을 했을 경우에는 기존에 x값을 z에 넣어주어야지 정상적으로 움직임이 가능한 상황이 되어버렸다.. 그래서 다양한 방법을 사용 해 보아도 마음대로 잘되지 않았는데 친구가 Wheel Collider에 대해서 알려줬다 콜라이더를 사용하더라도 보통 box,capsul,spheer 콜라이더를 보통 사용하기 때문에 존재를 모르고있었다 그래서 이번에는 Wheel Collider를 사용해서 구현을 해보았다 휠 콜라이더(Wh.. 2023. 7. 25.
[UNITY]모바일 가상 조이스틱 구현하기(3) 모바일 가상 조이스틱 구현하기(3) [UNITY] 모바일 가상 조이스틱 구현하기(1) 모바일 가상 조이스틱 구현하기(1) 가상 조이스틱을 구현하기 위해서 젤 처음으로 UI를 디자인 해주었다 Joystick(하얀 동그라미) 이미지에 자식으로 Lever(파란색 동그라미) 로 구현하였다. 조이스 j2su0218.tistory.com [UNITY] 모바일 가상 조이스틱 구현하기(2) 모바일 가상 조이스틱 구현하기(2) [UNITY] 모바일 가상 조이스틱 구현하기(1) 모바일 가상 조이스틱 구현하기(1) 가상 조이스틱을 구현하기 위해서 젤 처음으로 UI를 디자인 해주었다 Joystick(하얀 j2su0218.tistory.com 앞에서 했던 모바일 가상 조이스틱을 이용해서 캐릭터를 움직이는 것을 적용해보려고 한다.. 2023. 7. 25.
[UNITY] 모바일 가상 조이스틱 구현하기(2) 모바일 가상 조이스틱 구현하기(2) [UNITY] 모바일 가상 조이스틱 구현하기(1) 모바일 가상 조이스틱 구현하기(1) 가상 조이스틱을 구현하기 위해서 젤 처음으로 UI를 디자인 해주었다 Joystick(하얀 동그라미) 이미지에 자식으로 Lever(파란색 동그라미) 로 구현하였다. 조이스 j2su0218.tistory.com 가상 조이스틱을 구현하기 2탄으로 1탄에서는 조이스틱과 레버를 이벤트 핸들러의 입력을 받아서 드래그 하는 곳으로 레버가 따라서 움직이도록 구현하였다. 이번에는 레버의 이동을 제한하는 것을 구현하려고 한다 Lever 이동 제한 Lever가 Joystick에서 벗어나지 않도록 하기 위해서는 Joystick의 중심에서 일정 범위 이상으로 넘어가지 않게 거리를 제한 해주어야 한다 나의 L.. 2023. 7. 20.
[UNITY] 모바일 가상 조이스틱 구현하기(1) 모바일 가상 조이스틱 구현하기(1) 가상 조이스틱을 구현하기 위해서 젤 처음으로 UI를 디자인 해주었다 Joystick(하얀 동그라미) 이미지에 자식으로 Lever(파란색 동그라미) 로 구현하였다. 조이스틱을 구현하기 위해서 나중에 Joystick의 RectTranform 과 Lever의 RectTransform의 위치를 계산하기 위해서 Joystick 게임 오브젝트의 Anchor Presets을 Letf bottom으로 설정해 주어야한다 드래그 기능 만들기 VirtualJoyStick 이라는 이름의 스크립트를 하나 만들어 준다 스크립트를 생성하고 파일을 열어보면 public class VirtualJoystick : MonoBehaviour { //기본적으로 MonoBehaviour 로 되어있다 } 드.. 2023. 7. 20.
[UNITY]뷰포리아(Vuforia) 이용해서 XR 만들기(2) [UNITY]뷰포리아(Vuforia) 이용해서 XR 만들기(1) 뷰포리아(Vuforia) 이용해서 XR 만들기(1) Vuforia SDK 설치하기 https://developer.vuforia.com/downloads/sdk?field-sdk-release-version-tid=58 SDK Download | Engine Developer Portal Use Vuforia Engine to build Augmented Reality Android, iOS, and j2su0218.tistory.com 첫 번째에서는 Sample을 뷰포리아에서 제공하는 Imge Target을 캠을 통해 뜨웠다면 이번에는 내가 원하는 이미지를 카메라에 인식 시켰을 때 원하는 모델링이 나올 수 있도록 구현 하려고한다. 아무것도.. 2023. 7. 18.
[UNITY]뷰포리아,No webcam profile has been found for your webcam 해결하기 뷰포리아,No webcam profile has been found for your webcam 해결하기 위에 이미지는 Type음 WebCam으로 해두었는데 컴퓨터와 WebCam이 연결되지 않아서 Camera Device 에서 No Camera라고 뜨고 있다 연결 해주었는데도 경고가 뜨는 경우가 있는데 Vuforia에서 지정해둔 이름을 가진 카메라를 사용하지 않아서 다음과 같이 경고가 나오는 것이다 현재 프로젝트 위치 \Library\PackageCache\com.ptc.vuforia.engine@88e4a5432e86\Vuforia\Editor\EditorResources 다음 위치에 보면 webcamprofiles.xml 라는 xml 파일이 있는데 열어서 확인하면 Vuforia에서 지정한 Camera.. 2023. 7. 18.
[UNITY]뷰포리아(Vuforia) 이용해서 XR 만들기(1) 뷰포리아(Vuforia) 이용해서 XR 만들기(1) Vuforia SDK 설치하기 https://developer.vuforia.com/downloads/sdk?field-sdk-release-version-tid=58 SDK Download | Engine Developer Portal Use Vuforia Engine to build Augmented Reality Android, iOS, and UWP applications for mobile devices and AR glasses. Apps can be built with Unity, Android Studio, Xcode, and Visual Studio. Vuforia Engine can be easily imported into Unity.. 2023. 7. 17.
728x90
반응형