728x90
반응형
- [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.04.08
- [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.04.08
- [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.04.08
- [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.04.08
- [UNITY]비동기 프로그램 만들기: async / await 비동기 프로그램 만들기: async / await 프로그래밍 방식에는 동기식과 비동기식이 있다 동기식은 순차적인 실행 방식을 의미하고 일반적으로 동기식 작업 방식으로 진행이 된다 비동기식은 동기식과는 달리 여러작업들을 동시에 실행 하는 방식을 말한다 이런 비동기식 처리는 동시에 여러작업을 수행하여 작업이 완료 될 때 까지 기다리지 않고 다음 코드를 실행 할 수 있게 해준다 비동기 프로그래밍은 유니티에서 자주 사용되며, 네트워크 요청, 파일 로딩 등과 같은 작업을 효율적으로 처리할 수 있도록 도와준다 이러한 비동기식 작업은 구조를 정확하게 파악하지 않고 구현 하면 무한 루프, 무한 대기 상태에 빠지게 된다 동기 처리는 실행순서가 보장되지만 속도가 느리고 비동기 처리는 속도가 빠르지만 실행 순서가 보장되지 .. 2024.04.05
- [UNITY]파일 선택 다이얼로그 사용하기: EditorUtility.OpenFilePanel 함수 사용법 Unity 에디터 환경에서 파일 선택 다이얼로그를 사용하여 사용자가 원하는 파일을 선택하는 방법 Unity 에서는 게임 또는 앱을 개발하는 동안 사용자에게 파일 선택 기능을 제공해야할 때가 있다 예를 들어 사용자가 특정 파일을 열거나 가져오는 기능이 필요한 경우 EditorUtility.OpenFilePane() 를 사용해서 파일 선택 대화 상자를 열고 사용자가 원하는 파일을 선택 할 수 있게 할 수 있다 string EditorUtility.OpenFilePanel(string title, string directory, string extension) 다음과 같이 사용 할 수 있고 title 은 파일 탐색 대화 상자의 제목, directory 는 파일 탐색 상자가 열릴 때 표시할 기본 디렉토리, ex.. 2024.04.02
- [UNITY]포톤(PUN2) 콜백 코드 정리 포톤(PUN2) 콜백 코드 정리 포톤에서 제공하는 콜백함수를 사용하기 위해서는 상단에 using Photon.Pun; 을 선언해주고 MonoBehaviour 를 MonoBehaviourPunCallbacks 로 변경해줌 using Photon.Pun; public class NetworkManager : MonoBehaviourPunCallbacks 크게 사용하는 콜백함수를 정리하면 서버 연결 방 생성하기 방 참여하기 방 만들기/참여 랜덤으로 방 참가하기 방 나가기 다음 기능을 구현할 수 있다 서버 연결하기 PhotonNetwork.ConnectUsingSettings(); Photon Editer 에 설정된 값으로 포톤 사용자들을 서버에 연결 시켜준다고함 public void Connect() => P.. 2024.04.02
- [UNITY]포톤(PUN2) - 실습 작업 과정 작업 과정 로비 씬(Lobby) 닉네임이랑 방을 생성하거나 생성되어있는 방에 들어 갈수 있고 방 리스트를 누르면 생성되어 있는 방으로 참여 할 수 있음 이름과 방 번호를 입력 하지 않으면 시작 할 수 없음 - 데이터를 입력하지 않았는데 게임시작 버튼이 동작하는 문제 (해결) 생성된 방의 리스트 목록 가져와서 리스트가 생성되고 삭제되었을 때 포톤에서 제공하는 업데이트 클래스를 사용해서 방 리스트 판넬 생성 하고 삭제 해주기 포톤에서 데이터를 받아서 텍스트 안에 뿌려줌 방 리스트를 누르면 생성되어 있는 방으로 참여 할 수 있음 참여 버튼을 누르면 해당 판넬은 닫히고 선택한 방 값을 텍스트 안에 넣어줌 게임 디자인 하기 , 방 (Room01) 구현 하기 캐릭터의 움직임을 구현, 포톤 뷰를 사용해서 동기화 구현.. 2024.03.22
- [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.03.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.03.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.03.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.03.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.03.18
- [MacOS]개발자 맥북(Mac) 세팅 과정 개발자 맥북(Mac) 세팅 과정 이 글은 내가 다음에 맥북을 사거나 했을 때 쉽게 개발자 세팅을 하기위해서 작성한 글이다 처음 IOS 빌드 해보려고 맥북 샀는데 windown 랑 너무 달라서 노트북을 샀는데 손이 안가는 상황이 올까봐.. 어떻게든 써보려고 노력중이다. 다행이 조금씩 적응중임.. 1. Homebrew 설치 Mac용 패키지 관리 애플리케이션 으로 프로그램을 설치 할 때 설치 파일을 다운로드 받은 후 설치 파일을 실행해서 설치하는것이 아닌 터미널에서 명령어를 사용해서 프로그램을 설치 할 수 있다 Homebrew The Missing Package Manager for macOS (or Linux). brew.sh 구글에서 homebrew 라고 치면 사이트가 나온다 그리고 위에 있는 명령어를 복.. 2024.03.08
- [Mac OS] 맥북 JAVA 환경 변수 설정하는 방법 자바 설치 오라클 홈페이지에서 자바를 다운받아 설치 해준다 https://www.oracle.com/java/technologies/downloads/#jdk20-mac Download the Latest Java LTS Free Subscribe to Java SE and get the most comprehensive Java support available, with 24/7 global access to the experts. www.oracle.com 설치를 해주고 재부팅을 해주고 자바가 정상적으로 설치가 되었는지 확인 하기 위해서 터미널을 열어서 Java -version 이라는 명령어를 입력하면 버전이 확인 가능하다 설치된 jdk 리스트 확인하기 터미널에서 다음 명령어를 작성해주면 JAVA폴더.. 2024.03.02
728x90
반응형