'분류 전체보기'에 해당되는 글 2940건

  1. 2025.10.25 상속
  2. 2025.10.25 델리게이트
  3. 2025.10.25 구조체 struct 와 enum
  4. 2025.10.25 네임 스페이스 및 기타등등
  5. 2025.10.24 유니티 잡담111
  6. 2025.10.24 컬렉션 기초 개념
  7. 2025.10.23 개 쉬운 IQ 판단법
  8. 2025.10.23 리더쉽 ㅡ 첫번째 스킬 , 역할 분담
  9. 2025.10.22 한국 최근 여름 시작일 겨울 시작일
  10. 2025.10.21 유니티 잡글


상속

unity 유니티 공부 2025. 10. 25. 14:45 |


상속

부모 -> 자식 에게 물려줌



Unit 이 부모고
Player 는 자식임

 



public class Enemy : Unit { }     // Unit 상속
public class Boss : Enemy { }     // Enemy 상속 → Unit 기능도 사용 가능

Unit
ㄴ>Enemy
 ㄴ>Boss

 


상속은 코드 재사용이다

어느 카데고리에 속해있는 지 정리가 필요하다

공통 기능은 부모 클래스에서
개별 기능은 자식 클래스에서 구현하기


 

+

 

 



상속 처럼 다른데서 받아 쓸 땐
private 아니고 public  으로 해야함을 잊지 말기


MonoBehaviour 를 부모 class 이름으로 바꾸면
그 부모 속에 있는 변수들을 그대로 사용 가능해짐



public ㅡ 타 클래스에서 모두 사용 가능
protected ㅡ 상속 받은 자식 클래스만 사용 가능



부모 클래스로 굳이 일일히 이동 안하고,
자식 클래스에서 다시 정의하고 수정하고 싶다면?

부모에선 virtual 을 쓴다
자식에선 override 를 쓴다


+


추상함수

미완성인 상태에서 일단 만들어 두는 것
속 내용은 비었고 이름만 만들어 둠

코드가 1000줄 이렇게 너무 길어지면
내가 변수 만들었나 안만들었나 헷갈림
그 때 필요한 것



abstract protected void 함수이름();
이런 식으로 부모 클래스에서 만듦
임시로 만들어 놓는 거임
완성은 자식 클래스에서 만드는 거임



추상 함수를 부모 클래스에서 쓸 땐,
abstract public class 이름 : MonoBehaviour
이렇게 맨 앞에 붙여야 함

 


추상함수를 부모 클래스에서 만든 다음엔
반드시 자식 클래스에서 완성 시켜줘야 함


+

 

상속의 개념

 

 

케이디 유튜브 출처

반응형
Posted by 이름이 익명
:

델리게이트

unity 유니티 공부 2025. 10. 25. 14:12 |

 

 

델리게이트(Delegate)

이것들 묶어서 실행해줘! 라는 뜻
여러 개가 세트로 작동한다는 뜻


이벤트 끼리 연결 하는 구조임


예시

스킬 공격 함수
ㄴ> 공격모션 취한다, 적이 hp 피해 입는다, "적이 쓰러졌다"


예시 

커피 제조 함수
ㄴ> 커피를 만든다, 커피를 컵에 담는다, 커피를 손님에게 준다


 

+

 

 



void Start ( )
{
 SetPower
 SetHP
 SetMana
 Set어쩌구
 Set저쩌구...
}
이렇게 매번 여러 함수를 쓰면 너무 힘들어진다
여러 함수를 한번에 실행시키는 델리게이트 를 써야 편하다


+

스크립트 상 델리게이트 예시

public delegate void Abdefghi (int value);
Abdefghi amugona;

델리게이트는 이런식으로 하나 만들 수 있다
델리게이트의 이름은 amugona 다


델리케이트는 Class 이기 때문에 초록색으로 나온다
함수 여러개 담는 그릇이라는 뜻임


amugona += SetPower;
amugona += SetHP;
이런식으로 델리게이트에 함수를 집어 넣을 수 있다

amugona -= SetHP;
이런식으로 델리게이트에 담긴 함수를 제거 할 수 있다


호출시엔
amugona( );
이렇게 호출하면 됨


근데 아무것도 없을 때의 null 오류를 방지하기 위해
호출 시 이렇게 변형함

if ( amugona != null )
amugona( );


+


static event 의 경우도 델리게이트와 비슷하다

다른 c# 파일의 클래스 바구니 안의 것을 넣고 뺄 수 있다

TestFile.OnStart += Abc;

이런식으로 OnStart 안에 Abc 함수를 넣을 수 있다

+






 

반응형
Posted by 이름이 익명
:


유니티에서 자주 쓰이는 구조체 예시

Vector3, Vector2, Color, Quaternion → 모두 struct

복사본을 그대로 배송하는 개념


+

구조체는 
struct 키워드로 선언
작은 데이터 묶음 다룰 때 사용

+


class 는 값을 넣을 수 있으나
struct 는 값을 넣을 수 없다

그냥 뼈대만 설정하겠다는 뜻



struct 는 구시대 유물이다
class 하나만 계속 써도 무방하다


+

struct 로 한 번 만들면
나중에 new 어쩌구 선언할 필요가 없어진다

+


값 타입 = 사과는 10 이야
주소 타입 = 사과는 거기 가서 직접 봐, 알고보니 10 이었어

 


+

enum이란?
열거형(Enumeration)
숫자 값(int)과 이름을 연결


public enum UnitType
{
    Warrior,  // 0
    Mage,     // 1
    Archer    // 2
}
위 예제에서 
Warrior는 내부적으로 0, 
Mage는 1, 
Archer는 2
라고 인덱스 번호 연결 해줌



    None = 0,
    Poison = 1,
    Stun = 2,
    Burn = 4
if ( StatusEffect= 4) {  Debug.Log("불타는 상태!"); }
이런식으로 버프/디버프 관리에 유용 




Inspector 창 에서 드롭다운 선택 가능
드래그 해서 지정하는 거임

public class Unit : MonoBehaviour
{
    public UnitType unitType; // Inspector에서 선택 가능
}

코드와 에디터를 연결 할 수 있다
→ 실수 줄이고 편리하게 설정



반응형
Posted by 이름이 익명
:

 

🧩 트리거 조건 정리표

이벤트 트리거 조건 필요 컴포넌트 함수 이름
마우스 오버 커서가 Collider  위에 있을 때 Collider OnMouseOver()
마우스 클릭 Collider 클릭 시 Collider OnMouseDown()
키보드 입력 특정 키를 누를 때 없음 Input.GetKeyDown(KeyCode.X)
화면에 진입 Rendere가 카메라에서
처음 보일 때
Renderer OnBecameVisible()
화면에서 이탈 Rendere가 카메라에서 사라짐 Renderer OnBecameInvisible()
유닛 충돌 Rigidbody 가
다른 Collider 와 부딪힘
Rigidbody + Collider OnCollisionEnter(Collision col)
거리 기반 조건 두 객체간 거리 Transform Vector3.Distance(a, b)
모션애니 종료 특정 애니메이션 끝날 때 Transform AnimationEvent
이벤트 삽입
시간 경과 일정 시간 후 없음 StartCoroutine(WaitForSeconds())
적이 플레이어 감지 시야 안에 들어올 때 Raycast Physics.Raycast()
모든 적 제거시 적의 리스트가 0이 됨 List<Enemy> if(enemyList.Count == 0)

 

+

 


TurnManager 턴 시스템을 만든 후

public event Action OnTurnStart; // 턴이 시작할 때
public event Action OnTurnEnd;  // 턴이 끝날 때

이런 식으로 “이벤트 중심 설계”로 바꾸면 쉬워진다

 

 

 

+

 

 


🧠  **Namespace (네임스페이스)**

“이름이 겹치지 않게 구분해주는 폴더”

C#에서 클래스, 함수, 변수 등의 이름 충돌을 막기 위해 사용하는 논리적 구역




자주 쓰이는 네임 스페이스

using UnityEngine; 유니티의 핵심 기능 ( Transform 등 )
using UnityEngine.UI; UI 시스템 (Button, Text 등)
using UnityEngine.SceneManagement; 씬 전환 관련 기능
using System.Collections; 일반 코루틴 및 컬렉션 기능
using System.Collections.Generic; List, Dictionary 등 제네릭 컬렉션
using TMPro; TextMeshPro 관련 기능



+

 




int 정수 반환
float 소수점 반환
bool 참 거짓 반환
void  반환값 없음

public void 어쩌구 하면은
함수의 실행만 하고 아무값도 돌려주지 않음

void는 반환값이 없는 특별한 자료형이다
변형을 하지 않는다


함수 만 계산하거나

객체를 지정만 해준다


+


네임 스페이스

누군가 만들어놓은 함수들, 변수들을 가져다 쓰겠다


using 
네임 스페이스를 가져다 쓰겠다는 명령어

namespace
네임 스페이스를 새로 만들겠다는 뜻


+


변수나 함수 여러개 만들다보면 이름이 중복되기도 함

이를 방지 하기 위해서 접두사 prefix 를 붙이는 방법이 있음

Youtube apple;

Myname.Youtube apple;
이런식으로 변형


반응형
Posted by 이름이 익명
:

 

 

유니티 6.2 버전 쓰고 있으면,

 

강좌는 2020 포함 2020 이후의 강좌를 들어야 함

 

인풋 시스템과 스크립터블 오브젝트와 시네마신은 별개로 따로 배워야 함

이것들은 신기술

 

 

2019 , 4.0 , 5.0 버전 = ui 와 파이프라인이 너무 달라서 비추천

 

 

 

+


데이터 
data
사용자 이름, 비밀번호, 게시글 내용, 상품 가격


로직
logic
가격 할인 계산, 송금 규칙, ui 표시 여부, 로그인 검사




시네마신, 포스트 프로세싱은
플레이 모드에서 나올때도 값이 유지된다
플레이하며 실시간 조정 가능하다



 

 

 

 

 

 

 

유니티 3d 턴제 srpg 만들 건데, 
직접 구현해야 하는 부분 VS 어셋 구매하는게 나은 부분 설명해 . 

 


에셋 활용 중심 🎯
시각 / 편의 / 툴 은 에셋을 쓰는 걸 추천

UI, 카메라,  인벤토리, 컷신, 트윈, 사운드, 맵툴, 이펙트, 프레임워크

 



직접 구현 중심 ✅
핵심 로직 / 시스템

그리드, 경로탐색, 턴 매니저, 데미지 계산, 스킬 로직, AI 행동, 세이브 구조


+

프레임워크 (Framework) 뜻

빌더, 유료 에셋 틀 같은 거임
큰 틀 뼈대
일정한 규칙 하에, 미리 만들어 놓은 툴



예시
RPG Builder
Dialogue System



+

tweening 트위닝

보간(Interpolation), 부드러운 이동 (Ease) 자연스러운 움직임

스무스하게 이동, 또잉또잉하게 이동 을 연출시킴



DoTween Pro 에서는
restrat 버튼 하나만으로 플레이 안해도 미리 보기 가능해서 편하다


+

특정 개체를 향해 유도 미사일 날리기,
돈이 내 인벤 ui 로 쫓아서 들어오는 연출

이처럼 도착 지점을 정할 수 있는 시스템은

파티클 Particle 시스템을 쓰면 됨
target.position 를 쓴다 함

궤적 남기기는 Trail Renderer




“돈이 UI로 빨려들어가는” 건 Trail Renderer + Lerp 이동
“유도 미사일 / 마법 구체”는 VFX Graph or Script 제어 ParticleSystem

+

 

+


prefab 
선택후 우클 prefab - unpack completely
하면 프리팹 연결 아예 끊고
그냥 일반 오브젝트가 되버림


+


localScale = Vector3.zero;
0 0 0 으로 만들어서 사라지게 만듦

localScale = Vector3.one;
1 1 1 로 만들어서 원래 크기로 만듦

transform.localScale = new Vector3(10f, 4f, 1f);
xyz 10 4 1 로 늘리기



+

        Application.Quit(); 

게임 프로그램 아예 종료 해 버리는 함수


이건 테스트 플레이 에서는 작동 안함
빌드 한 게임에서만 작동함


+


Game 테스트 창
가로로 쭉 늘리면 Stats 창이 있음
렉 걸리냐 성능 체크 하는 창임



+

 


post processing

인게임은 안 건들고
화면 상 후보정 기술

bloom
쌩 흰색을 빛처럼 번지게 만듦


film grain
텍스쳐 덧입히듯
밋밋한 평면이 자글자글한 디테일 높아짐



+

 



Game 테스트 창
세모 눌러보면 Simulator 가 있음
여기에 모바일 기종으로 테스트 가능함

일일히 남의 폰 빌려서 폰에서 테스트 번거롭게 할 필요 없고 이렇게 하믄 됨



+

모바일 용어

세로모드 ㅡ Portrait

가로모드 ㅡ Landscape


+

 

 

유니티 실무자만 아는 노하우

 

스탯 능력치는 다 int 정수로 만들기

소수점은 노의미

 

글로벌 좌표 vector 3 랑

타일 간 vector2 좌표랑 별개로 취급하기

 

명중률은 최대 99 % 로 표기

100% 라고 써있는데 회피 되는 경우가 있어서 이상해보임

 

 

반응형
Posted by 이름이 익명
:


[ ] 가 들어가는 그냥 배열은 모음집의 크기 조절이 불가능 하다

근데 컬렉션 이라는 거에선 크기 조절이 가능하다 



컬렉션엔 종류가 여러가지가 있다
리스트, 큐, 스택, 해시테이블, 딕셔너리, 어레이리스트 등등..

 


ArrayList
float string int 등 아무거나 넣을 수 있으나, 
컴 연산량이 많은게 단점


List
int 정수형을 통일 됨


HashTable
열쇠와 자물쇠
이렇게 두 값을 쌍으로 묶어서 관리
컴 연산량이 많은게 단점


Dictionary
해시테이블과 똑같으나, 
어떤 자료형인지 미리 틀을 만들어 놓는 것

Dictionary<TKey, TValue>
tkey ㅡ 키가 되는 값
tvalue ㅡ 그 키의 짝궁이 되는 값


Queue
FIFO 퍼스트인 퍼스트아웃 
선입 선출


Enqueue 언큐 ㅡ 줄에 넣는다
Dequeue 디큐 ㅡ 줄에서 뺀다


Stack
나중에 넣은 걸 먼저 뺌
맨 처음 넣은 게 가장 나중에 빼짐
바구니 안에 물건 넣듯이

Push ㅡ 넣다
Pop ㅡ 빼다

 



+

List 예시
유닛 목록

Dictionary 예시
ai 경로 탐색

Queue 예시
턴 순서 대기열, 포션 제작 대기줄

Stack 예시
Undo 되돌리기, 설겆이 하기

 



+

ArrayList, Hashtable은 거의 안 쓰임
임의로 테스트 할 때 쓰임
레거시용

 


+

if (stack.Count !=0)
조건문을 사용해서 아무것도 없는데 뭔가를 빼려는 오류를 방지 가능



+


값을 더하고 빼는 함수 를 메소드 라고 한다



RemoveAt(숫자)
RemoveAt(0) 1번째 인덱스 값을 지워라
RemoveAt(4) 5번째 인덱스 값을 지워라



Clear
배열 속 값을 전부 지워라



Contrains (값)
이 값이 배열 속에 있으면 true


Insert 
값을 새치기 해서 밀어 넣기
나머지 값들은 인덱스가 뒤로 하나씩 밀림

 

 

 

반응형
Posted by 이름이 익명
:


유튜브 1배속은 무리고
0.9배속으로 봐야 이해된다
iq 90


유튜브 1배속으로 본다
iq 100


유튜브 1.25 배속으로 봐도 이해된다
iq 125 이상


유튜브 1.5 배속으로 봐도 이해된다
iq 150 이상


유튜브 2.0 배속으로 봐도 이해된다
iq 200 이상



.


지능 높은 사람은 머리 회전이 빠름

그걸 유튜브를 통해 간단하게 측정가능함





반응형
Posted by 이름이 익명
:


초보 알바생은
떠 먹여줘야 함



고수 관리자가
복잡하게 얽힌 일을
풀어낸 후
먹기 좋게 나눠야 함



결국 복잡한 일, 사소한 일은
고수 관리자들이 함


단순하고 하기 쉬운 일은
어린 알바생이 함



이 일은 아무나 못함
대부분의 직장은
이 얽힌 실타래를 안 풀고 막 살음
그래서 비 효율적인 곳이 많음






반응형
Posted by 이름이 익명
:


2024년 부터의 데이터


5월 20일
갑자기 더워짐
이때부터 반바지 차림 입어야 살 수 있음


10월 20일
갑자기 추워짐
이때부터 후드티+가벼운 패딩 입어야 함



반응형
Posted by 이름이 익명
:


배열

변수 하나에 숫자 여러 개를 담는 다는 뜻




int[ ] numbers = { 0,1,2,3,4,5,6,7,8,9 } ;

배열 속 변수 개수 10개 까지는 손수 담아도 됨




근데 10개를 넘어가면?
일일히 못 쓰잖아?

numbers 라는 변수를 0부터 99까지 담고 싶다 치자
인덱스 배열 크기는 마지막 숫자 +1 이다, 100 이다

int[ ] numbers = { 0,1,2,3,4,5,6,7,8,9,10,11,12 .......

이러면 숫자가 너무 많아서 다 쓰기 힘듦


int[] numbers = new int[100];
for (int i = 0; i <= 99; i++)
{
    numbers[i] = i;
}
이런 식으로 표현함


int[ ] numbers = Enumerable.Range(0, 99).ToArray();
이런 식으로 줄여 표현도 가능



+

int[ ] numbers = new int[100];
for (int i = 0; i < numbers.Length; i++)
{
    numbers[i] = i;
}

이런 식으로  numbers.Length 라고 표현하면
그 최대 길이를 알아서 입력하라 는 뜻


int[] numbers = new int[100];
for (int i = 0; i <= numbers.Length-1; i++)
{
    numbers[i] = i;
}

또는 이런식으로 최대길이 -1 로 표현 함

+

int[ ] numbers = { 0,1,2,3,4,5,6,7,8,9 } ;

numbers[0] = 500;

이렇게 하면 첫번째 위치 값을 500으로 바꿔라 라는 거니까

int[ ] numbers = { 500,1,2,3,4,5,6,7,8,9 } ;

이렇게 변경 가능하다

+

단, 배열 변수의 최대 길이를 넘어서게 
나중에 추가 확장은 불가능하다

맨 처음 지정할 때만 최대 길이 조정 가능한 거임


+

int [ ] numbers = new int [ 5 ] ;
배열 크기를 5개로 만든다
0 ~ 4 까지의 인덱스다

일단 변수 숫자 지정은 아무것도 안했으니
속 내용 값은 0 0 0 0 0 이다

+

인덱스 개수

0 1 2 3 4 5  까지의 숫자를 담으면
총 숫자의 개수는 6개다
0부터 시작한다



+

int [,] array2 = {  { 1,2,3,4,5  } , {10,20,30,40,50 } } ;

이렇게 변수 하나 안에 두 개의 배열을 넣을 수 있음
이걸 2차원 배열 이라고 한다


게임 만들 땐 1 차원 배열만 주로 쓴다

+


짚고 넘어갈 점.

배열의 크기는 맨 처음에만 지정 가능하다.

배열은 0 부터 시작하니 틀리면 안된다.




+

 

 



인스펙터 잠금 사용할 때 팁

우클릭 ㅡ add tab ㅡ inspector 
쓰면 창 하나 더 띄워줘서 작업시 편해짐

 

 

 

반응형
Posted by 이름이 익명
: