본문 바로가기
반응형

분류 전체보기505

Unity - DontDestroyOnLoad(중복, 겹침 문제) DontDestroyOnLoad 씬을 변경할때 target오브젝트가 파괴되지 않도록 유지해주는 메서드이다. public static void DontDestroyOnLoad(Object target); 1. 중복되는 문제가 발생 만약 씬 이동시 gameObject가 중복되는 문제가 생길시에는 아래 코드와 같이 다른 Instance가 존재한지 판별한고 이미 존재 한다면 현재 gameObject를 파괴하고 함수를 종료하게 하여 문제를 해결한다. private void Awake() { if (Instance != this && Instance != null) { // 다른 Instance가 존재하면 현재 gameObject를 파괴한다. Destroy(gameObject); return; } else { In.. 2023. 6. 9.
네트워크 프로그래밍 - 네트워크 기초(단말기, 스위치(MAC address table), 라우터) 택배로 네트워크기초 설명 같은 단지내에 보내는 사람과 받는 사람이 있는 경우 같은 단지내에 살더라도 집마다의 경로를 외워야 하는 번거로움이 존재한다. 그러므로 경비실을 중간 매개체로 사용한다. 이렇게 하면 보내는 사람이 경비실로 택배를 전달하고 경비실에서 실제 주소를 가지고 있기 때문에 분실책임이 적어지는 장점이 있다. 보내는 사람이 경비실에 받는 사람의 주소를 알려줘야 한다. 만약 내부에서 약속 된 이름을 사용하면 경비실에서 실제 주소를 알지 못하는 문제가 발생할 수 있다. 보내는 사람과 받는 사람이 다른 아파트 단지에 있는 경우 보내는 사람은 집에서 경비실로 택배를 전달하고 경비실은 받는 사람의 실제 주소를 받는다. 그리고 택배 배송센터에 배송하고 택베 배송 센터에서는 해당 아파트 번호를 확인하고 그.. 2023. 6. 7.
운영체제 - 병렬처리(Parallel Loops, Parallel Invoke,Parallel Partitioning) 순차처리 한 번에 하나씩 처리하는 방식, 이는 서로 독립적으로 실행한다. 병렬처리 여러 작업을 동시에 처리하는 방식, 이는 작업을 분할하면서 동시에 실행할 수 있다. 그러므로 실행 순서가 보장 되지 않는다. Parallel 클래스 병렬처리를 위한 기능을 제공하는 클래스 public static class Parallel 01 Parallel Loops 배열 또는 컬렉션의 요소를 병렬적으로 처리한다. 작업의 실행 순서와 출력 순서가 보장되지 않는다. for public static System.Threading.Tasks.ParallelLoopResult For (int fromInclusive, int toExclusive, Action body); 매개변수 fromInclusive : 시작 인덱스(포함.. 2023. 6. 6.
운영체제 - TLS(Thread Local Storage) 게임 개발 요소 게임 로직 : 플레이어의 입력처리, 캐릭터의 움직임, 퀘스트 로직과 같은 게임의 동작 및 규칙 로직 : 게임실행하는 과정에서 발생하는 정보,경고,오류 등을 기록 데이터베이스 : 플레이어정보, 아이템 정보등 게임에서 사용되어지는 데이터의 저장과 관리 클라이언트 섹션 : UI, 그래픽, 사운드, 네트워크등 게임을 실제로 실행되는 플랫폼에서의 사용자와의 상호작용을 담당 락을 모든 부분에다가 배치하면 발생하는 모든 문제들을 간단하게 해결할 수 있겠지만 사실은 치명적인 문제가 있다. 한쪽에 몰리는 경우 처리하기가 매우 어려워진다. 예를 들어 모든 유저들이 분산되서 위치하면 좋은데 다른 지역에 몰려 있는 경우 클라이언트 세션에서 같은 게임로직에 packet을 쏘게 된다. Lock의 개념이 상호배타적.. 2023. 6. 6.
운영체제 - ReaderWriterLockSlim(RWLock), 사용자 정의 Lock구현 해보기 ReaderWriterLockSlim 클래스 동시에 여러개의 쓰레드가 공유 자원을 읽을 수 있지만 쓰기 작업이 수행되는 동안에는 상호 배타적으로 막는다. 01 EnterReadLock 읽기 잠금을 획득 public void EnterReadLock (); 02 EnterWriteLock 쓰기 잠금을 획득 public void EnterWriteLock (); 03 ExitReadLock ReadLock을 해제 한 후 다른 쓰레드가 write에 액세스 할 수 있도록 한다. 여러번 획득 한 경우 동일한 수의 ExitReadLock이 필요하다. public void ExitReadLock (); 04 ExitWriteLock WriteLock을 보유한 쓰레드가 lock을 해제하여 다른 쓰레드가 액세스 할수 있.. 2023. 6. 1.
운영체제 - 제3자에게 부탁하기(AutoResetEvent,Manualresetevent ) 제3자에게 부탁하기(event) 리소스 접근 제어 방식중 하나이다. 특정 이벤트가 발생할때까지 대기한 다음 이벤트가 발생하면 제3자가 알려주는 방식으로 작동한다. 제3자가 커널레벨에 존재하는 경우 이벤트가 발생한 경우 사용자에게 알려주러 올때 context switching이 일어나므로 매우 느리다는 단점이 있다. 1. AutoResetEvent 문이 자동으로 잠긴다. AutoResetEvent autoResetEvent = new AutoResetEvent(true); public void Auquire() { autoResetEvent.WaitOne(); // 입장하면서 문을 닫음 } public void Release() { autoResetEvent.Set(); // 문을 열음 } 01 생성자 초.. 2023. 5. 31.
반응형