전체 글

전체 글

    Flow Free 2 - 슬롯(그리드)과 파이프(연결선)

    게임 매니저가 맨 후순위로 와야한다 슬롯 생성 맵에 존재하는 모든 그리드들이 Slot.cs 기반이 될거다, 실제로는 임의의 위치에 동그라미 생성을 해야하기 때문에 2개의 이미지를 겹쳐놨다, 추가로 Slot.cs는 선 색상, 이어서 할 수 있는 동그라미 정보 등 Grid 관련 데이터를 들고 있을거다. 아래는 옵션 Slot.cs using UnityEngine; using UnityEngine.UI; public class Slot : MonoBehaviour { RectTransform rect; public Image img; // 선 관련 정보 public Color color; public Vector3 pipePos; public int idx = 0; private void Awake() { im..

    Flow Free 1 - 그리드 (맵) 생성

    Grid Manager.cs 프리팹 생성 후 우클릭해서 사이즈에 맞게끔 생성 void InitGrid(int size) { gridObj = Instantiate(new GameObject(), transform); var layoutGroup = gridObj.AddComponent(); gridObj.name = $" Grid {size}x{size} "; var rect = gridObj.transform as RectTransform; rect.localPosition = mPos; rect.sizeDelta = mSlotSize; layoutGroup.padding.left = mLeftPadding; layoutGroup.spacing = new Vector2(15f, 15f); layoutG..

    유니티 셰이더 기본 1 - Hello World

    유니티에서 셰이더는 스크립트를 만들 때와 비슷하게, 프로젝트 뷰에서 우클릭-Create-Shader 하단에서 선택하여 제작할 수 있다. 이 중, 당분간 사용할 셰이더는 Standard Surface Shader, Unlit Shader이다. 직역하면 표준 표면 셰이더와 라이팅을 사용하지 않는 셰이더다 뭘로 만들어도 관계는 없으나, 일단은 Unlit Shader로 생성해보자. 아래는 Unlit Shader의 이름을 HelloWorld로 제작한 결과 Shader "Unlit/HelloWorld" { Properties { _MainTex ("Texture", 2D) = "white" {} } SubShader { Tags { "RenderType"="Opaque" } LOD 100 Pass { CGPROGR..

    [LeetCode] Sqrt(x)

    class Solution { public: int mySqrt(int x) { int s = 0, e = x; int ans = 0; while (s x) e = mid - 1; else { ans = mid; s = mid + 1; } } return ans; } };

    [Python] f-string (문자열)

    기존 문자열 방식 1. 더하기 키워드 person1 = "철수" person2 = "영희" print(person1 + "는 " + person2 + "를 좋아한데요!") 2. % 서식 person1 = "철수" person2 = "영희" print("%s는 %s를 좋아한데요!"%(person1, person2)) 3. str.format 함수 person1 = "철수" person2 = "영희" print("{}는 {}를 좋아한데요!".format(person1, person2)) 이렇게 그동안 사용해오던 문법들은 각 단어가 어느 부분에 전달되는지, 어떤 기호를 빼고 읽어야 하는지 깊게 관찰이 필요하지만 f-string은 매우 직관적이고 가독성이 뛰어나다. person1 = "철수" person2 = ..

    맵 방식 설정 심리스(Seamless), 존(Zone), 룸(Room)

    심리스 (Seamless) 방식 큰 맵을 하나 만들어 맵 이동 시에 새 지역을 로딩없이 자유롭게 이동할 수 있도록 만드는 방식. 유저 캐릭터가 특정 방향으로 움직일 때마다 그만큼 새지역을 로딩하는 구역로딩을 한다. 이 때문에 심리스 방식은 로딩이 없는 것처럼 유저가 느끼게 만든다. 장점) 미리 로딩이 되어있기 때문에 자유롭게 이동이 가능 단점) 미리 로딩을 하는 방식이기에 초반 로딩이 다소 긴 편 존(Zone) 방식 맵을 작은 단위로 나눈 후에 맵에 설정된 입구를 통해 서로 연결한 후 그 위치를 통해 각 맵을 이동하는 방식 입구, 즉 포탈을 통해 맵을 이동하기 때문에 포탈맵 방식이라고도 한다. 장점) 그때마다 필요한 부분만 로딩을 하여 퍼포먼스 및 렉 최적화 단점) 맵을 이동할 때마다 로딩을 해야하는 번..

    [C++] 라운드 로빈 스케줄링 구현 (우선순위 큐 이용)

    EHProcess.h #pragma once #include #include using namespace std; class EHProcess { string pname; //프로그램 이름 const int tjob; //전체 작업량 const int cjob; //cpu 점유 시 수행가능 최대 작업량 int ntjob = 0; //현재 남은 작업량 int ncjob = 0; //현재 cpu 점유 시 수행가능 최대 작업량 public: EHProcess(string pname, int tjob, int cjob); //Idle 상태에서 Ready 상태로 전이 void IdleToReady(); //CPU를 점유하여 실행, 남은 작업량 반환 int Running(); //프로세스 종료 void EndPro..

    [C#] Newtonsoft.Json 사용방법

    먼저 Nuget으로 Newtonsoft.JSON을 다운, 참조한다. 샘플 코드 아래 data1와 data2를 참조하려면 JsonExample 클래스로 받아와야 하는데 이때 제너릭 함수를 활용한다. using System; using Newtonsoft.Json; namespace NewtonsoftExample { class JsonExample { public int data1 { get; set; } public string data2 { get; set; } } class Program { static void Main(string[] args) { // Json 형식의 데이터 var json = "{'Data1' : 1, 'Data2' : 'Test'}"; // Json 형식의 string 값을 ..

    [C#] Visual Studio Nuget 설치

    [도구] -> [Nuget 패키지 관리자] 에서 찾을 수 있다. gui 환경과 콘솔 환경에서 패키지를 다운 받아 사용할 수 있다. [도구] -> [Nuget 패키지 관리자] -> [솔루션용 Nuget 패키지 관리..] 에 들어간다 관련 패키지를 검색한다. [찾아보기] 를 클릭해 해당 패키지를 검색할 준비를 한다. 설치하고 하는 패키지를 입력 및 적용 프로젝트를 선택한다. 설치할 프로젝트를 검색 후, 해당 패키지를 선택한다. 그리고 왼쪽 창에서 적용할 해당 패키지를 선택한다. 그리고 설치를 클릭한다. 예제로 redis 설치하고, hello_world 프로젝트에 적용하겠다. 설치정보를 확인한다. 설치 완료를 아래 출력창에서 확인하다. 출처

    [C#] Nuget이란?

    NuPack 기반의 NuGet은 free and open-source package manager desigend for the MS developer platform 이다. .Net 프레임워크를 위한 소스코드 관리자이다. C# 기반으로 시작되어, 2013년 부터 native c++ 프로젝트를 지원하면서 visual studio에서 가장 대표적인 오픈소스 지원 프로젝트 2010부터 시작되어, 2012 vs 버전 부터는 기본설치로 제공 되었음. NuGet은 visual studio add-in 으로서, .net을 기본으로 하여, c++, cross-platform 지원 등을 통해, 그 범위를 넓혀 다양한 오픈소스 프로젝트들을 지원함으로서, NuGet Eco-System을 구축해 나아가고 있다. 환경 NuG..