프로그래밍 / C++ / 언리얼

Programming/C# | Unity 8

[Unity] Socket을 이용한 python과 통신

파이썬에서 입력된 데이터를 유니티로 보내서 씬화면에 있는 큐브의 위치를 변경시켜보자. 서버 연결방식은 루프백 통신방식을 사용한다. unity는 python(클라이언트)의 연결을 기다리는 서버, python은 unity와 연결을 설정하는 클라이언트의 역할을 담당하도록 구조를 짠다. 연결이 설정되면 python은 좌표 또는 바이트스타입의 데이터를 unity로 보낼 수 있다. unity는 python에서 데이터를 수신하고 수신된 좌표를 기반으로 큐브의 위치를 업데이트한다. Thread thread; public int connectionPort = 25001; TcpListener server; TcpClient client; bool running; Thread : 역할은 메인쓰레드에서 서버를 담당하는것이 ..

[C#] Unity & Photon을 활용한 서버구축

# PUN [PhotonNetwork] 포톤과 관련된 여러가지 기능을 제공 (매치메이킹 / 방 생성 / 방 접속 등등) Photon Unity Networking 2: PhotonNetwork Class Reference The main class to use the PhotonNetwork plugin. This class is static. More... static bool ConnectUsingSettings () Connect to Photon as configured in the PhotonServerSettings file. More... static bool ConnectUsingSettings (AppSettings appSettings, bo doc-api.photonengine.com..

[그래픽스] 렌더링 파이프라인

렌더링 파이프라인이란? 가상카메라를 이용해 기하학적으로 2D이미지를 만들어내는 역할을 하는 과정들을 나타낸 것이다. 보통 게임상에서 표현되는 화면은 기하학적으로 3D장면을 구성하고 가상카메라를 성정한 뒤에 모니터에 2D표현을 해야한다. 랜더 파이프라인은 그래픽스 API에 따라 다를 수 있다. https://docs.microsoft.com/ko-kr/windows/win32/direct3d11/overviews-direct3d-11-graphics-pipeline 그래픽 파이프라인 - Win32 apps 이 섹션에서는 Direct3D 11 프로그래밍 가능 파이프라인에 대해 설명합니다. docs.microsoft.com 버텍스 로드(Vertex) 3D물체가 어떻게 생겼는지에 대한 데이터. 그래픽 카드는 데..

[Unity] 1인칭 마우스 입력 / 카메라 회전 & Zoom 기능 구현하기.

카메라 회전 RotateToMouse.cs using System.Collections; using System.Collections.Generic; using UnityEngine; public class RotateToMouse : MonoBehaviour { [SerializeField] private float rotCamXAxisSpeed = 5f; // 카메라 x축 회전속도 [SerializeField] private float rotCamYAxisSpeed = 3f; // 카메라 y축 회전속도 private float limitMinX = -80; // 카메라 x축 회전 범위 (최소) private float limitMaxX = 50; // 카메라 x축 회전 범위 (최대) private f..

[Unity] 상속 & 인터페이스 총 정리

상속 현실세계는 어떤 공통적인 특징이 있고, 그 특징을 상속받아 다른 세부적인 항목을 정의하는데, 일상적인 많은 객체가 이러한 "계층적"인 관계를 따르고 있다. 예를들어 고양이, 강아지, 사자라는 타입을 정의한다고 해보자, 공통적으로 그것들은 걷기, 울음소리 등 어떤 상태값을 제공하는데, 이를 정리하면 모두 동물이라는 특징에서 나온 것임을 알 수 있다. 이와같이 공통적인 특징들을 코드상으로 물려주어 정의하는것을 상속이라고 부른다. Virtual 메소드를 상속 가상함수는 객체지향 4대특징중 하나인 다형성을 반영시킨 함수이다. 다형성은 문자 그대로 해석하면 여러가지 형태를 띠는것을 의미한다. 예를들어 animal이라는 클래스안에 speak()라는 함수를 정의했다고 치자, 동물의 울음소리는 제각각이다. 따라서..

[Unity] 델리게이트(Dlegate) & 이벤트(Event) 쉽게 접근하기.

Delegate C#문법에서 타입이란 "값"을 담을 수 있는 존재다. 그렇다면, 그 "값"의 범위에 "함수"도 포함될수 있지 않을까? delegate는 일반적인 class구문이 아니고 delegate라는 예약어로 표현된다. 만약 함수 여러개를 동시에 실행시키고 싶을때 delegate를 쓴다. delegate의 장점이라고 하면 복잡한 코드와, 복잡한 함수의 연결을 좀 더 간단하게 처리할수있다. 선언하는 방법은 아래와 같다. (선언된 클래스에서만 사용가능하다.) public delegate void ChainFunction(int value); ChainFunction chain; 함수 2개 넣고 실행 using System.Collections; using System.Collections.Generic;..

[Unitiy] Raycast _ 마우스 입력으로 오브젝트 변화시키기

Raycast 개요 Unity의 Raycast는 광선을 발사하여 오브젝트가 적중하면 bool값을 true로 반환하는 Physics 함수다. 그런 뒤 거리, 맞은 물체의 여러가지 정보들을 RaycastHit타입의 변수에 저장하여 사용하거나, 물체를 변화시킬 수 있다. physics.Raycast의 매개변수 Vector3 origin : 광선 발사 지점 Vector3 direction : 발사하는 방향 Ray ray : origin과 direction이 합쳐진 형태, 광선 RaycastHit hit : 충돌체와 충돌체의 정보를 가지고있는 변수 float distance : 광선의 길이, 없으면 무한대 발사 int layerMask : 레이어로 지정되어 특정 오브젝트만 충돌하게 만든다. int layerMas..

[Unity] 이벤트 함수 정리

Awake( ) void Awake() { Debug.Log("Awake()"); } 오브젝트가 활성화 될 때 단 한번만 실행하는 함수, 모든 변수를 초기화. 스크립트가 비활성화 되고, 오브젝트 활성화 되어있을 때 유일하게 호출되는 함수. Start( ) void Start() { Debug.Log("start()"); Destroy(gameObject, 3f); } 오브젝트가 활성화 될 때 단 한번만 실행하는 함수, 모든 변수를 초기화. Awake와 달리 스크립트와 오브젝트 둘다 활성화 되어있을때 호출된다. OnEnable( ) void OnEnable() { Debug.Log("OnEnable()"); } // 오브젝트가 활성화될 때 실행. OnDisable( ) void OnDisable() { D..

반응형