분류 전체보기
하드웨어 최적화
class Program { static int x = 0; static int y = 0; static int r1 = 0; static int r2 = 0; static void Thread_1() { y = 1; //Store y r1 = x; //Load x } static void Thread_2() { x = 1; //Store y r2 = y; //Load x } static void Main(string[] args) { int count = 0; while (true) { count++; x = y = r1 = r2 = 0; Task t1 = new Task(Thread_1); Task t2 = new Task(Thread_2); t1.Start(); t2.Start(); Task.Wai..
컴파일러 최적화
namespace 최적화 { class Program { static bool _stop = false; //동시 접근 가능 static void ThreadMain() { Console.WriteLine("쓰레드 시작!"); while (_stop == false) { //stop 신호를 기다림 } Console.WriteLine("쓰레드 종료!"); } static void Main(string[] args) { Task t = new Task(ThreadMain); t.Start(); Thread.Sleep(1000); _stop = true; Console.WriteLine("Stop 호출"); Console.WriteLine("종료 대기중"); t.Wait(); Console.WriteLine(..
쓰레드 기초
개론 프로세스 = 프로그램 쓰레드 = 프로그램 안에서 일하는 직원 CPU코어 = 직원에게 명령을 내림 * CPU코어 1개 / 쓰레드 여러 개인 상황 : 코어가 아주 짧은 시간 번갈아 가면서 쓰레드에게 명령을 내림 쓰레드 생성 using System; using System.Threading; namespace ServerCore { class Program { static void MainThread() { Console.WriteLine("Hello Thread!"); } static void Main(string[] args) { Thread t = new Thread(MainThread); //정직원 고용 t.Start(); //일 시작 Console.WriteLine("Hello World!");..
사용자 정의 기즈모
기즈모 : 씬 뷰에 있는 특정 오브젝트에 아이콘을 표시해 쉽게 식별할 수 있게 해주는 기능 사용자 정의 기즈모 장점 : 크기조절!! public class MyGizmos : MonoBehaviour { public Color _color = Color.yellow; public float _radius = 0.1f; private void OnDrawGizmos() { //가즈모 색상 설정 Gizmos.color = _color; //구체모양의 가즈모 생성 ,(생성위치 ,반지름) Gizmos.DrawSphere(transform.position, _radius); } }
오브젝트 충돌
. 함수명 호출 조건 is Trigger 옵션 void OncollsionEnter 두 물체 간의 충돌이 일어나기 시작했을 때 언체크 void OncollsionStay 두 물체 간의 충돌이 지속될 때 언체크 void OncollsionExit 두 물체가 서로 떨어졌을 때 언체크 void OnTriggerEnter 두 물체 간의 충돌이 일어나기 시작했을 때 체크 void OnTriggerStay 두 물체 간의 충돌이 지속될 때 체크 void OnTriggerExit 두 물체가 서로 떨어졌을 때 체크 태그를 활용하여 이벤트 작성 void OnCollisionEnter(Collision coll) { //충돌한 겜오브젝트의 태그를 비교 if (coll.collider.CompareTag(" 태그 ")) { ..
게임오브젝트의 이동 및 회전 1
게임오브젝트의 이동 및 회전시킬 때 크게 두 가지 방법으로 Transform 컴포넌트와 물리엔진(PhysX, Box2D)이 있다. 이 글에서는 InputManager 이용, Transform 컴포넌트 이용 변수 선언 private float h = 0.0f; private float v = 0.0f; private float r = 0.0f; //이동 속도 변수 public float moveSpeed = 10.0f; //회전 속도 변수 public float rotSpeed = 80.0f; 이동 로직 void Update() { h = Input.GetAxis("Horizontal"); v = Input.GetAxis("Vertical"); r = Input.GetAxis("Mouse X"); //전후..
기본 함수
함수명 함수 속성 Awake - 스크립트가 실행될 때 한 번만 호출되는 함수 - 주로 게임의 상태 값 또는 변수의 초기화에 사용 - Start 함수가 호출되기 전에 맨 먼저 호출 - 스크립트가 비활성화돼 있어도 실행 - 코루틴으로 실행 불가 Start - Update 함수가 호출되기 전에 한 번만 호출 - 스크립트가 활성화돼 있어야 실행 - 다른 스크립트의 모든 Awake가 모두 다 실행된 이후에 실행 - 코루틴으로 실행 가능 Update - 프레임마다 호출되는 함수로 주로 게임의 핵심 로직을 작성 - 스크립트가 활성화돼 있어야 실행 LateUpdate - 모든 Update 함수가 호출되고 나서 한 번씩 호출 - Update 함수에서 전처리가 끝난 후 실행해야 하는 로직에서 사용 - 카메라 이동 로직에 ..