썸네일 운영체제(OS, Operating System) 1) 운영체제운영체제란 컴퓨터 하드웨어 자원을 효율적으로 관리하여 사용자에게 제공하는 시스템 소프트웨어이다.ex) Windows, Linux, iOS, Android, UNIX, Mac OS * 인터페이스: 디바이스와 디바이스 또는 사람과의 통신을 위한 매개체 또는 프로토콜을 의미한다.* 써드파티: 제 3자라는 의미로, 원천 기술과 호환되는 제품을 의미한다. 1-1) 운영체제의 기능프로세스, 기억장치, 입출력 시스템, 네트워킹 등을 관리한다. 입출력 시스템이란 마우스, 키보드 등을 디바이스에 연결 시의 입출력을 말하는데, 사용자가 장치 특성에 대해 알지 못하더라도 연결하여 사용할 수 있도록 보조해주는 것이다.- CPU 스케줄링과 프로세스 관리- 메모리 관리- 디스크 파일 관리- 입출..
썸네일 컴퓨터 네트워크 0) 네트워크 프로그래밍 디바이스간의 데이터를 주고 받을 수 있도록 프로그래밍 하는 것을 의미한다. 온라인 게임들을 게임 서버와의 상호작용을 통해 로직을 수행하고 데이터를 주고 받는데, 이것을 네트워킹이라고 할 수 있겠다. 싱글 플레이 게임과 온라인 게임에서 고려해야할 차이는 무엇일까? 아마 '서버와의 통신'이라는 것에서 생길 핑(Ping)이다. 지연시간(Latency) 라고도 하는데, 빛이 물리적으로 이동하여 데이터를 주는데 걸리는 시간이다. 당연히 같은 컴퓨터 내에서의 데이터 연산이야 눈 깜짝할 새도 아니겠지만, 지구 한바퀴를 도는데는 133ms 정도가 걸린다. 실제로 스타크래프트2를 통해 북미서버(특히나 동부)나 유럽서버를 가보면 핑이 100을 넘어가며 가끔씩은 300까지 튈 때가 있다. 이러한 경..
썸네일 C, C++, C# 0. C와 C++, C# ① C는 절차지향언어로, 1972년에 만들어져 아주 오래되었기에 리소스가 많이 없을때(저사양) 유용하다. C++은 C의 superset이 되고자 만들어졌으며 C와 코드 구조가 유사하다. 다만 C는 함수를 이용하고 C++은 객체를 이용한다. 함수와 객체를 이용하는 것은 출력에서도 차이가 보인다. C는 printf("%d", var);로 함수를 사용하므로 괄호가 존재한다. 하지만 C++은 cout 동적 할당이 한번만 일어나므로 두번 일어나는 std::shared_ptr보다 비용이 적다. 하나의 특정 개체를 참조하는 스마트 포인터가 총 몇 개 인지 참조하는 스마트 포인터이며, 참조 횟수(reference count)가 0이면 메모리를 해제한다. 여러 개의 shared_ptr이 같은 객..
썸네일 유니티 08_ UI UI를 public 변수로 선언하는데 이 때 Image와 Text Class는 UnityEngine.UI 라이브러리 안에 들어있다. 버튼 내부의 Text는 자식이므로 InChildren을 붙여주어야 한다. UnityEngine.SceneManagement를 포함하면 SceneManager를 사용할 수 있다. 다음과 같이 OnClick에 Script를 넣고 특정 함수를 호출하도록 지정할 수 있다.
썸네일 컴퓨터 그래픽스 1. 쿼터니언 오일러 각으로는 짐벌락 현상이 일어나므로 4가지 변수(x, y, z, w)를 사용하여 회전의 벡터로 이용한다. 이 4가지 변수 좌표를 쿼터니언(Quaternion)이라고 한다. 1-1) 짐벌락 오일러 각(yaw, pitch, roll)을 사용할 때 오브젝트의 두 회전 축이 겹쳐 원하는 방향으로 회전할 수 없는 일이 생기는데, 이를 짐벌락이라 한다. 더보기 쉬운 이해를 위한 영상 https://www.youtube.com/watch?v=zc8b2Jo7mno 추가 설명 https://handhp1.tistory.com/3 이는 컴퓨터가 회전 축이 겹쳤을 때 어떤 회전 축을 기준으로 해야하는지를 몰라서 발생한다. 즉, 한번에 회전이 연산되는 것이 아니라 회전에 순서가 존재하기 때문이다. 좀 더 ..
썸네일 유니티 07_ 2D 플랫포머 1) Enemy 이벤트 Player가 Enemy의 위에서(position.y로 비교) 밟을 경우 OnAttack()을 통해서 enemyMove Class의 OnDamaged() 함수를 호출한다. 위로 점프하면서 부딪히는건 밟는게 아니기 때문에 velocity.y < 0으로 아래로 떨어질 때라는 조건을 넣어준다. 2) 아이템 OnTriggerEnter2D는 충돌이 일어날 때 한번 호출된다. * OnCollision과 OnTrigger OnCollision은 RigidBody가 존재하는 Object끼리, 즉 두 객체 모두 물리 법칙을 고려하는 상황에서 사용한다. OnTrigger는 Object가 IsTrigger 상태일 때 사용할 수 있다. 여기서 Item은 RigidBody를 적용하지 않고(물리 법칙X) ..
썸네일 유니티 06_ 타일맵 & Enemy 1) Tile Palette Window > 2D > Tile Palette Object 2D > Tilemap 생성하고 Material 적용해주기 2) Enemy Script Enemy Object가 움직일 때 낭떠러지인지 아닌지 확인하고 방향을 트는 행동을 해야한다. 이 때, Player와 다르게 Ray가 수직이 아니라 한 칸 앞을 봐야하므로 (rigid.position.x + 방향 단위 값)에 Ray를 쏴준다. Ray가 Platform Layer에 닿지않으면 방향 값을 반대로 바꿔주는데, 이 때 타이밍이 안 맞아서 낭떠러지로 떨어지는 경우가 있을 수 있으므로 기존의 Invoke를 CancelInvoke()로 취소 시켜준다. 3) Layer 끼리 충돌 Project Settings에서 바꿔줄 수 있다.
썸네일 유니티 05_ 2D 물리효과 참조 https://www.youtube.com/watch?v=2SikOdH7xvQ&list=PLO-mt5Iu5TeZGR_y6mHmTWyo0RyGgO0N_&index=4 1) Rigidbody 2D 3D 때와 마찬가지로 Rigidbody를 사용하는데 Linear Drag는 공기 저항이다. Angular Drag는 회전에 관련된 값이다. 오르막길을 위해 Platform의 Material에서 Friction을 0으로 하고, 캐릭터의 속성 값을 바꿔주었다. 현재 Object 속도의 단위 벡터는 rigid.velocity.normalized.x(또는 y)로 얻을 수 있다. Freeze Rotation으로 회전을 막을 수 있다. (AddForce는 힘을 주는 거라 공중에서 밑으로 떨어질 때 힘을 주면 회전력이 됨..
썸네일 유니티 04_ Roll-a-ball Game
썸네일 유니티 03_ 2D 기초 1) Camera의 Orthographic(정사영투시, 원근법 X), Perspective(원근법) 2) Physics Box Collider 2D Rigidbody 2D 3) Atlas Atlas 안의 Sprite를 하나씩 나누기 위해 Mode를 Multiple로 한다. 각 Sprite를 어떻게 나눌 지 선택한다. 4) Animation Animator Controller를 보면 아래와 같다. State: 애니메이션 상태 단위
썸네일 유니티 02_ 오브젝트에 물리 효과 적용하기 1) 중력 적용 RigidBody를 통해서 적용한다. Is Kinematic을 쓰면 스크립트를 통해서 물리효과를 적용 더보기 Is Kinematic은 움직이는 함정을 만들 때 유용하다. 2) 충돌 Collider를 통해서 적용한다. 더보기 맨날 하늘을 나는 캐릭터라면 Collider의 radius를 크게 해야할까? 생각해보니 그러면 가끔 땅에 내려오는 컷씬에서 쓸 수 없을 것 같다 2-1) C# Script를 이용한 충돌 MeshRenderer와 Material 이용 OnCollisionEnter: 물리 충돌이 시작할 때 호출 OnCollision: 충돌 중에 호출 OnCollisionExit: 충돌 끝에 호출 Collision은 충돌 정보를 표현한다. 2-2) Trigger Collider와 겹칠때 발..
썸네일 유니티 01_ 버튼 조작 & 오브젝트 이동 1) Input Manager 이용 Input.getButton을 이용한다. 2) C# Script 이용 Key는 키보드, Mouse는 마우스(0:왼/1:오), Button은 Input Manager를 이용하 지정한 키 Keycode 목록 : https://docs.unity3d.com/kr/2021.3/ScriptReference/KeyCode.html KeyCode - Unity 스크립팅 API Key codes returned by Event.keyCode. These map directly to a physical key on the keyboard. docs.unity3d.com 더보기 - 키보드를 예를들면 KeyDown, Key, KeyUp 세가지 상태가 있는데, Key를 기준치 이상으로 누르..