Animator 파라미터Float: 실수형 값Int: 정수형 값Bool: 참/거짓 값Trigger: 단발성 이벤트예시isRunning (Bool) → 달리기 상태Speed (Float) → 이동 속도Jump (Trigger) → 점프 이벤트 전이 조건(Transition) 설정Make Transition조건 설정Transition을 선택한 뒤 Inspector 창에서 Conditions 섹션 추가앞서 정의한 파라미터를 조건으로 설정 예시 조건Speed > 0.1 → Idle에서 Run으로 전환isRunning == true → Walk에서 Run으로 전환 기능 정의 (스크립트로 제어)스크립트에서 애니메이터를 불러오기 Animator 컴포넌트 연결 스크립트를 컴포넌트에 추가한 후 코드를 작성한다.// ..
전체 글
728x90
2D 픽셀 기반 게임을 제작할 때 타일맵을 활용하면 작업을 효율적으로 할 수 있다, Window > 2D > Tile Palette 경로에서 타일 팔레트 창을 열어준다. 새 그리드를 생성해준 뒤 스프라이트를 드래그해서 올려놓으면 브러쉬처럼 사용할 수 있다. 브러쉬를 눌러서 게임뷰에서 그리고 지우개를 눌러서 게임뷰에서 불필요한 이미지는 지울 수 있다. 브러쉬 크기가 그리드에 맞지 않을 경우 스프라이트 이미지 크기에 맞게 Pixels Per Unit을 수정해주면 된다.
벨트스크롤 게임에서 활용할 수 있는 이미지 스크롤 스크립트 스크롤 메커니즘배경을 왼쪽으로 계속 이동시키기transform.position += Vector3.left * moveSpeed * Time.deltaTime;Time.deltaTime를 사용하여 프레임 속도에 관계없이 부드럽게 이동한다. 위치 초기화if (transform.position.x 배경이 -posX보다 왼쪽으로 이동했는지 확인한다. 오른쪽 가장자리(posX)로 위치를 초기화하여 루프 효과를 만든다. using System.Collections;using System.Collections.Generic;using UnityEngine;public class BackgroundScroll : MonoBehaviour{ [Serial..
C# 문자열 보간(String Interpolation)C# 6.0부터 도입된 기능으로, 문자열 내부에 변수를 쉽게 삽입할 수 있는 방법이다.$ 기호를 문자열 앞에 붙이면, 중괄호 {} 안에 변수를 넣어 값을 직접 삽입할 수 있다.int score = 100;string playerName = "Alice";Debug.Log($"Player: {playerName}, Score: {score}"); 기존 방식과의 비교문자열 연결(Concatenation)Debug.Log("Player: " + playerName + ", Score: " + score);string.Format() 사용Debug.Log(string.Format("Player: {0}, Score: {1}", playerName, sc..
캡슐화(Encapsulation)객체 지향 프로그래밍(OOP)의 핵심 개념 중 하나로,데이터(변수)와 해당 데이터에 작용하는 메서드(함수)를 하나의 단위(클래스)로 묶고,외부에서 직접 접근을 제한하는 것 캡슐화의 핵심 원칙데이터 은닉(Data Hiding)객체의 내부 상태(변수)를 외부에서 직접 접근하지 못하도록 제한주로 private 접근 제한자를 사용한다.정보 보호(Protection)외부에서는 반드시 제공된 메서드(getter/setter)를 통해서만 내부 데이터를 읽거나 변경할 수 있다. 인터페이스 제공(Abstraction)외부에서는 내부 구현 세부사항을 알 필요 없이, 필요한 기능만 사용할 수 있다. 캡슐화 예제using UnityEngine;public class Player : Mono..
[SerializeField]유니티에서 Private 변수를 인스펙터 창에서 노출할 수 있도록 하는 속성이다.using System.Collections;using System.Collections.Generic;using UnityEngine;public class test01 : MonoBehaviour{ [SerializeField] private int health = 100; // Start is called before the first frame update void Start() { } // Update is called once per frame void Update() { }}// private 접근 제한자: 변수는 클래스 ..
변경된 ip를 체크하고 터미널에서 기존 ip에서 변경된 ip로 변경해주면 해결된다. ip 확인ifconfig | grep inet ip 변경하기(사용자명) Project_SVN % svn switch --relocate svn://(예전 ip)/Project svn://(변경할 ip)/Project ip 변경 체크하기(사용자명) Project_SVN % svn info경로: .작업 사본의 루트 경로: /Users/(사용자명)/Desktop/Project_SVNURL: svn://(변경된 ip)/ProjectRelative URL: ^/저장소 루트: svn://(변경된 ip)/Project저장소 UUID:리비전:노드 종류: 디렉토리스케쥴: 일반마지막 수정 작업자:마지막 수정 리비전:마지막 수정 일자: 20..
Font Awesome웹 프로젝트에서 아이콘을 간편하게 사용할 수 있도록 만든 아이콘 폰트 라이브러리웹 개발자들이 HTML 및 CSS를 통해 쉽게 벡터 아이콘을 추가할 수 있게 해주는 도구이다.아이콘을 사용하려면 Font Awesome 라이브러리를 포함한 후, CSS 클래스나 유니코드 값을 통해 아이콘을 호출할 수 있다.Font Awesome 웹사이트에서 다양한 아이콘을 검색하고 코드 스니펫을 확인할 수 있으며,아이콘 스타일(솔리드, 레귤러, 브랜드 등)과 크기, 애니메이션 등을 사용자 정의할 수 있는 기능도 제공 중.https://fontawesome.com/v5/search Font AwesomeThe internet's icon library + toolkit. Used by millions of ..
유니티에서 알파 표현에 있어서 리니어와 감마 모드의 차이는 색상과 투명도(알파) 처리가 달라지는 것이다.이 차이는 렌더링 파이프라인과 색상 데이터가 처리되는 방식 때문에 발생한다.감마(Gamma) 모드색상 값이 인간의 눈에 보이는 방식과 유사하게 조정되는데 이로 인해 색상이 밝아 보이며, 알파 블렌딩도 이를 기준으로 계산된다.하지만, 조명이나 그림자가 많이 들어가는 씬에서는 정확한 표현이 어려울 수 있다.감마 모드에서는 알파 블렌딩이 비선형 방식으로 처리되기 때문에, 일부 경우 부자연스러운 투명도 표현이 나올 수 있다.리니어(Linear) 모드색상 값이 물리적으로 정확하게 처리되며, 조명과 그림자 계산이 더욱 자연스러워진다.알파 블렌딩도 선형 방식으로 처리되어 투명도 표현이 더 정확하고 부드럽다.일반적으..
DOTween Visual Manager는 Unity에서 DOTween을 사용해 애니메이션을 설정할 수 있게 해주는 컴포넌트이다.OnEnable과 OnDisable은 DOTween Visual Manager가 게임 오브젝트의 활성화 상태에 따라 자동으로 애니메이션을 시작하고 종료하게 해주는 메서드.1. OnEnable이 메서드는 게임 오브젝트가 활성화될 때 호출DOTween Visual Manager에서는 이 시점에 DOTween으로 설정된 애니메이션이 자동으로 시작예를 들어, UI가 활성화될 때 슬라이드 인 애니메이션을 적용하고 싶다면, OnEnable에 해당 애니메이션을 설정해두면 UI가 활성화되면서 자동으로 재생2. OnDisable반대로, 게임 오브젝트가 비활성화될 때 호출되는 메서드DOTween..
전체 드래그 한 후 Tab 키다중 블럭 들여쓰기 Shift+Tab 키내어 쓰기Ctrl+/주석
파이썬 파일(.py) 파이썬과 AI를 활용한 윈도우용 리네이머 만들기파이썬과 AI를 활용한 윈도우용 리네이머 만들기회사나 집에서 자유롭게 사용할 수 있는 리네이머를 만들어보려고 합니다. 주로 업무에 필요한 부분은1. 포토샵으로 레이어를 개별 PNG파일로 내gameuiux.tistory.com 전 편에서 파이썬과 AI를 사용해서 윈도우용 리네이머를 만들었다.이 파일을 다른 PC에서도 사용할 수 있게 .py 파일이 아닌.exe 파일로 변환하고자 한다. 파이썬 스크립트를 실행 파일로 변환하는 방법은 여러 가지가 있으며,가장 일반적으로 사용되는 방법은 PyInstaller와 cx_Freeze와 같은 패키지를 사용하는 것이다.이 방법들을 통해 파이썬 코드를 .exe와 같은 실행 파일로 변환할 수 있다. PyIns..
시각 밸런싱(Visual Balancing)시각 밸런싱, 시각 보정이라고도 한다. 디자인에서 시각적 요소들을 균형 있게 배치하여 전체적인 조화와 안정감을 주는 것을 말한다.시각적인 밸런스는 사용자가 디자인을 자연스럽고 직관적으로 받아들이게 하는 중요한 원칙 중 하나이다.이 과정에서 디자이너는 색상, 크기, 형태, 여백, 대비 등의 요소를 고려하여 디자인의 시각적 흐름을 조정한다. 사람의 눈은 정확하지 않아서 정확한 수치의 완벽한 그림과 실제 눈으로 봤을 때 완벽한 그림이 다르다.그래서 시각적으로 안정된, 그리고 기대하고 의도된 결과물을 내기 위해 보정을 사용하는 사례가 있다. 예시구글 로고왼쪽 구글의 로고는 원형의 프레임 안에 균등하지 않은 비율로 배치된 색상 영역으로 구성되어 있다.비율이 맞지 않으..
네이밍 컨벤션(naming convention)소프트웨어 개발에서 변수, 함수, 클래스, 파일 등의 이름을 정하는 규칙이나 관례를 의미합니다.네이밍 컨벤션은 코드의 가독성, 유지보수성, 일관성을 높이기 위해 사용되며,팀 내 또는 프로젝트 내에서 개발자들 간의 협업을 원활하게 할 수 있도록 도와줍니다. 대표적인 네이밍 컨벤션1. 카멜 표기법 (Camel Case)소문자로 시작하고, 각 단어의 첫 글자는 대문자로 표기예: firstName, getUserInfo2. 파스칼 표기법 (Pascal Case)모든 단어의 첫 글자를 대문자로 표기예: FirstName, GetUserInfo3. 스네이크 표기법 (Snake Case)모든 단어를 소문자로 작성하며, 단어 사이를 언더스코어(_)로 구분예: first_n..
스페이스바(공백) 생기는 문제네이버 카페 대문 이미지를 파일첨부로 추가하거나 게시글을 복사해서 추가하게되는 경우이미지 사이에 간격이 생기는 문제가 있는데 수정 방법을 찾아보니 이렇게 해결할 수 있었다. 연속되는 이미지를 사용할 때 이렇게 간격이 생기면 안되기 때문에 수정이 필요했다. 원인 파악 하기이미지 사이에 여백이 생기는 이유기본적으로 HTML의 img 요소는 인라인 요소로 간주되기 때문에브라우저는 이미지 사이에 작은 간격을 만들 수 있다고 한다. 수정 방법방법 1: display: block 사용방법 2: float 사용방법 3: font-size를 0으로 설정 gpt한테 원인과 방법을 물어보고 3번의 방법을 사용하였다. 카페 대문 에디터에서 html을 선택하고 div style="font-..
파이썬과 AI를 활용한 윈도우용 리네이머 만들기회사나 집에서 자유롭게 사용할 수 있는 리네이머를 만들어보려고 합니다. 주로 업무에 필요한 부분은1. 포토샵으로 레이어를 개별 PNG파일로 내보낸 다음2. 파일명 앞에 붙은 불필요한 이름(_0000_)들을 수동으로 수정해줄때 리네이머가 필요한데챗GPT와 파이썬을 활용해서 간단하게 만들어볼 수 있었습니다. 파이썬 윈도우 리네이머 GUI 구현사용자가 GUI를 통해 디렉토리를 선택하고, 파일 이름에 대한 규칙을 정한 뒤, 미리보기를 통해 확인한 후 파일 이름을 일괄 변경할 수 있도록 구현한 프로그램을 GPT로 생성했습니다. Tkinter를 사용하여 GUI를 생성하고, 사용자가 입력한 규칙에 따라 파일 이름을 변경하는 프로그램이 간단히 생성되었습니다.impor..
ParticleEffectForUGUIUnity UGUI에 파티클 효과를 추가하기 위한 Unity 플러그인기본적으로 3D 공간에서 작동하는 Unity의 파티클 시스템을 2D UI 환경에서도 사용할 수 있게 해준다. 주요 기능UI와 통합파티클 효과를 UI 요소 위에 렌더링할 수 있다. 이를 통해 게임 내 UI에 다양한 시각적 효과를 추가할 수 있다.2D 공간일반적인 파티클 시스템은 3D 공간을 기반으로 하지만, 이 플러그인은 2D 공간에서도 효과적으로 파티클을 사용할 수 있게 해준다. 따라서 UI 레이아웃을 유지하면서 시각적 효과를 추가할 수 있다.마스크 지원마스킹 기능을 지원하여 파티클이 특정 UI 영역에서만 보이도록 제어할 수 있다.이를 통해 UI의 특정 부분에서만 파티클 효과를 보여줄 수 있습니다..
파이썬의 bin 함수정수를 2진수 문자열로 변환해주는 함수bin(number)이 함수는 입력된 정수를 2진수 문자열로 변환하며,결과 문자열은 0b로 시작한다. 0b는 해당 문자열이 2진수를 나타낸다는 것을 의미함. 예제# 십진수 10을 2진수로 변환decimal_number = 10binary_representation = bin(decimal_number)print(f"{decimal_number} in binary is {binary_representation}")결과10 in binary is 0b10100b를 제외하고 순수한 2진수 문자열만 필요하다면, 슬라이싱을 통해 0b를 제거할 수 있음.# 십진수 10을 2진수로 변환하고 0b 제거decimal_number = 10binary_repres..
10 = 1010(2)10 // 2 = 5 (나머지 0)5 // 2 = 2 (나머지 1)2 // 2 = 1 (나머지 0)1 // 2 = 0 (나머지 1)나머지를 거꾸로 읽으면 1010 방법 1 - 파이썬 bin 함수 사용decimal_number = 10binary_representation = bin(decimal_number)[2:]print(f"{decimal_number} in binary is {binary_representation}") 방법 2 - 나눗셈과 나머지def decimal_to_binary(n): binary_num = [] while n > 0: binary_num.append(n % 2) n = n // 2 binary_num.r..
핫픽스(Hotfix)와 아이픽스(iFix)소프트웨어 유지보수와 관련된 용어 핫픽스 (Hotfix)목적: 긴급한 문제를 해결하기 위해 소프트웨어에 빠르게 적용되는 수정.특징- 특정 문제에 대한 즉각적인 해결책 제공.- 소프트웨어의 전체 업데이트나 새 버전 출시를 기다리지 않고도 배포 가능.- 일반적으로 중대한 버그 수정이나 보안 취약점 패치에 사용.- 배포와 테스트가 신속하게 이루어짐. 아이픽스 (iFix)목적: 보다 포괄적인 소프트웨어 수정 및 개선.특징- 여러 문제를 포함할 수 있으며, 새로운 기능이나 향상된 기능도 포함될 수 있음.- 테스트가 더 광범위하게 수행되며, 공식적인 릴리즈 과정에 포함될 수 있음.- 핫픽스보다는 적용 및 배포가 느릴 수 있음.요약핫픽스는 긴급한 문제 해결을 위한 즉각적인 수..
파이썬 모듈 module관련된 함수, 클래스, 변수 등을 하나의 파일로 묶은 것이다.이를 통해 코드를 재사용하고 관리하기 쉽게 할 수 있다. 모듈 만들기모듈 파일 생성모듈로 사용할 파일을 만든다. (예를 들어 my_module.py라는 파일을 생성)# my_module.pydef greet(name): return f"Hello, {name}!"class Person: def __init__(self, name): self.name = name def introduce(self): return f"My name is {self.name}."모듈 불러오기만든 모듈을 다른 파일에서 사용할 수 있다. (예를 들어, main.py에서 my_module.py를 불러와 ..
부정 연산자 !=두 피연산자가 같지 않음을 검사하는 데 사용#include int main() { int a = 5; int b = 1; // != 연산자의 결과를 출력 int result = (a != b); printf("결과: %d\n", result); // a와 b가 같지 않으므로 1이 출력 return 0;}#include int main() { int a = 1; int b = 1; // != 연산자의 결과를 출력 int result = (a != b); printf("결과: %d\n", result); // a와 b가 같으므로 0이 출력 return 0;}
조건식거짓(false = 0)참(true = 1)#include void main() { int a=1, b=2, c=3, i, j; char d='w'; i = (a >= 2) && (d == 'w'); j = (b 첫 번째 조건식i = (a >= 2) && (d == 'w');a >= 2는 1 >= 2로 거짓(false = 0)d == 'w'는 참(true = 1)논리 AND 연산자 &&두 피연산자가 모두 참일 때만 참이므로false && true는 false 따라서, i = 0 두 번째 조건식j = (b b d == 'w'는 참(true = 1)논리 OR 연산자 ||두 피연산자 중 하나라도 참이면 참이므로false || true는 true따라서, j = 1따라서, 프로그램의..
do-while먼저 루프 본체를 실행하고,그 다음에 조건을 검사하여 조건이 참이면 다시 루프를 반복한다. 조건이 거짓이 될 때까지 이 과정을 반복한다.즉, 최소한 한 번은 루프 본체가 실행된다. #include int main() { int n = 0, sum = 0; do { n++; sum += n; } while (n n과 sum을 각각 0으로 초기화do-while 루프 시작n이 1씩 증가(n++), 증가된 n 값을 sum에 더한다(sum += n).n이 5보다 작을 동안 루프가 계속된다.각 반복에서 n과 sum의 값첫 번째 반복: n = 1, sum = 1두 번째 반복: n = 2, sum = 1 + 2 = 3세 번째 반복: n = 3, sum = 3 + ..
중첩된 반복문 forint a, b, sum=0;for(a=0; a1; b--) sum+=1; 외부 루프for(a=0; aa = 0부터 a = 10까지 11번 실행 내부 루프 for(b=5; b>1; b--)b = 5부터 b > 1일 때까지 5, 4, 3, 2로 4번 실행 따라서, 내부 루프는 외부 루프가 한 번 실행될 때마다 4번 실행 전체 sum의 값 계산각 반복마다 sum이 1씩 증가하므로 최종 sum의 값은 44외부 루프의 실행 횟수: 11번내부 루프의 실행 횟수 (외부 루프 1회당): 4번따라서, 전체 반복 횟수는 11 * 4 = 44번 만약 외부 루프의 조건이 a 외부 루프는 a = 0부터 a = 9까지 총 10번 실행 전체 sum의 값 계산외부 루프의 실행 횟..
(x > y) ? x : y;이 형식은 C 언어에서 삼항 연산자 (ternary operator) 또는 조건 연산자 (conditional operator)라고 불린다.이 구문은 다음과 같은 형태를 가지고 있다.condition ? expr1 : expr2;condition: 평가될 조건, 이 조건이 참이면 expr1 반환expr1: 조건이 참일 때 실행되는 표현식expr2: 조건이 거짓일 때 실행되는 표현식예를 들어,(x > y) ? x : y;는 x가 y보다 크면 x를 반환하고, 그렇지 않으면 y를 반환이 구문은 if-else 문을 간단하게 표현할 수 있어서 코드가 더 간결해지는 장점이 있다. 예시#include int max(int x, int y) { return (x > y) ? x :..
조건문프로그램의 흐름을 제어하는 데 사용주로 사용되는 조건문 if, else if, else, switch if 문if 문은 주어진 조건이 참인지 거짓인지에 따라 특정 코드 블록을 실행 else if 문else if 문은 앞선 if 문이 거짓일 때, 다른 조건을 테스트 else 문else 문은 모든 if 및 else if 조건이 거짓일 때 실행되는 코드 블록 switch 문switch 문은 하나의 변수 값에 따라 여러 코드 블록 중 하나를 실행할 때 사용각 코드 블록은 case 라벨로 구분switch (변수) { case 값1: // 변수 값이 값1일 때 실행되는 코드 break; case 값2: // 변수 값이 값2일 때 실행되는 코드 bre..
복합 대입 연산자C 언어에서 += 연산자는 복합 대입 연산자 중 하나이다.변수에 값을 더하고그 결과를 다시 변수에 저장하는 기능좀 더 자세히 설명하면,x += y는 x = x + y와 같은 의미이 연산자를 사용하면 코드를 더 간결하고 읽기 쉽게 만들 수 있다. 예시#include int main() { int x = 5; int y = 3; x += y; // x = x + y 와 동일 printf("x의 값: %d\n", x); // 결과는 8 return 0;} 특징간결함: x += y는 x = x + y보다 짧고 간결효율성: 컴파일러 수준에서 최적화가 이루어질 수 있다.다양한 자료형 지원: 정수형, 실수형 등 여러 자료형에서 사용할 수 있다. += 외 다른 복합..
증감 연산자변수의 값을 1씩 증가시키거나 감소시키는 연산자이 연산자는 전위형(prefix)과 후위형(postfix)으로 나눌 수 있다. 전위형 연산자 (prefix)++a 또는 --a변수의 값을 먼저 증가시키거나 감소시킨 후에 해당 값을 사용한다. 후위형 연산자 (postfix)a++ 또는 a--변수의 현재 값을 사용한 후에 값을 증가시키거나 감소시킨다.int a = 2, b = 3, c = 4;a = b++ + --c;// a = 3++ + --4; 여기서 ++는 연산 후 증가 --는 감소 후 연산// a = 6// b = 4// c = 3printf("Wn %d %d %d", a, b, c);b = --a + c++;printf("Wn %d %d %d", a, b, c);// b = --6 +..
728x90