https://www.youtube.com/watch?v=J6F8plGUqv8&list=PL412Ym60h6uvqYiCVKk5NiEFpDEwOMQFX&index=9

디자인 패턴 기원

디자인 패턴 연구는 gang of Four 에서 출발
네 명의 사람이 연구한 거고
이 사람들이 낸 gof 어쩌구 책에서 출발한 거임



+


SOLID Principles 솔리드 원칙

게임 뿐만 아니라 모든 소프트웨어는 이 솔리드 법칙을 지켜야 한다

꼬여버리지 않게 하기 위한 약속



단일 책임 원칙 (Single Responsibility Principle, SRP)
"하나의 클래스는 딱 하나의 역할만 맡자."

맥가이버 칼 처럼 다 하는 것 보단
주방 조리기구 처럼 각각 따로 쓰는 게 효율적이다


개방-폐쇄 원칙 (Open/Closed Principle, OCP)
"확장에는 열려있고, 수정에는 닫혀있어야 한다."

핸드폰 케이스 부착시킬 땐 핸드폰 본체를 뜯는 사람은 없다


리스코프 치환 원칙 (Liskov Substitution Principle, LSP)
"자식 클래스는 부모 클래스 역할을 완벽하게 대신할 수 있어야 한다."

오리 를 만들 었는데 날개도 없고 부리도 없으면 안된다
새 의 기본 기능을 탑재하고 있어야 한다


인터페이스 분리 원칙 (Interface Segregation Principle, ISP)
"한꺼번에 다 담지 마라, I 인터페이스를 잘게 쪼개라."

식당에서 짜장면 하나만 시키려는데
모든 메뉴판을 다 읽어야 한다면 불편하다


의존역전 원칙 (Dependency Inversion Principle, DIP)
"또렷한 것에 의존하지 말고, 추상적인 것(I 인터페이스)에 의존해라."

전기 플러그를 꽂을 때, 콘센트 구멍만 맞으면 되지 
그 전기가 화력발전소에서 왔는지 원자력발전소에서 왔는지 따지지 말 것


 

+

 

 


사실 여기서 더 깊게 생각하자면,
부모 자식 관게는 칼로 물베기임


뭐가 하이레벨이냐 뭐가 로우레벨이냐
딱 정확히 가를 순 없음

 

 

 

+

 

세부 부연 설명 추가

 

단일 책임 원칙  Single Responsibility Principle, SRP

 

 

인스펙터 창 컴포넌트가 그 예시다

 

코드 300 줄 이하, 간결해야 한다

 

모듈처럼 분리되어 있다

 

그래서 자식으로 부착이 쉽다

 

 

이렇게 하나의 class 안에 모든 걸 다 때려박으면 불 편

 

 

 

class 를 여러개 만들어 나누는 게 좋다

PlayerAudio

PlayerInput

PlayerMovement 

 

 

+

 

 

개방-폐쇄 원칙 (Open/Closed Principle, OCP)

 

 

실무에선 DLL, 라이브러리 를 직접 수정하지 않는다

 

원본은 냅두고

모드, 모듈만 갈아치우는 느낌으로 만든다

 

 

 

 

 

원본으로 잡은 건 Shape, 추상적인 개념

 

Rectangle : Shape

Circle : Shape

쉐이프 밑 자식을 추가함

네모와 동그라미를 자식으로 배치하는 느낌으로 만듦

 

 

 

 

 


림월드 모딩의 헉스립 PatchOperation 를 예로 들면,

더하고 , 빼는 것도 있음
원본을 수정 하는 것도 있음

원본 수정을 패치 를 통해서 하기도 함


+

 

 


Liskov subs 원칙

부모님이 죽으면 자식이 그 사회에서 역할을 대신할 수 있어야 한다

서브 클래스 만들 때 기능을 제거하지 마라

abstract 추상화 할 땐 단순하게 유지하라
추상화 된 걸 복잡하게 만들면 아무데도 못 쓰는 빈 껍데기 코드만 남음

 


팩토리 패턴 비슷한 개념이다

 


Vehicle 탈 것 아래엔
Car 도 있고 Train 도 있다

 


하지만 그냥 이렇게 만들면
어? 기차는 좌회전 우회전 못하는데? 하며 충돌 일어남

 

 

부모인 Vehicle 을 둘로 쪼개서

ITurnable IMovable 로 나눔

 


ITurnable 좌우 방향 조절 가능

IMovable 앞 뒤 이동 가능





+

 


인터페이스 분리 원칙 Interface Segregation

큰 덩어리 인터페이스들을 구체적이고 작은 단위로 분리
꼭 필요한 메서드만 이용할 수 있게 함

내부에 의존하지 말고 유연하게 할 수 있게 됨


I 인터페이스 뜻
청사진, 계약서, 큰 틀 


 IDamageable
피해를 입을 수 있는 것
이펙트 총알 말고, 플레이어 몬스터 를 뜻함

TakeDamage
피해를 입다

IExplodable
폭발할 수 있는것, 화약 통 같은 거

 

 

 

폭발통 의 경우

데미지 입을 수 있고, 폭발할 수 있음

 

적 유닉 의 경우

데미지 입을 수 있고, 이동할 수 있고, 유닛 스탯도 있음

 

 

 

 

+

 

 

의존역전 원칙 (Dependency Inversion Principle, DIP)

추상화, abstraction 에 의존하자

클래스 간에 서로 끈끈하게 연결이 되는 걸 피하라
되도록 서로 나눠져야 함

철수가 영희의 하위 변수를 쓰고, 
영희가 영수의 하위 함수를 쓰고
이렇게 서로 꼬이는 걸 피하라

이렇게 서로 꼬여져 있는 걸 결합, coupling 이라고 함

서로 꼬여져 있으면
수정할 때마다 이 파일 저 파일 뒤져야 함

 

 

 

문 같은 on. off  스위치 구현 할 때의 예시

 

Switch 와 ISwitchable 을 따로 뻬는 전략을 써서 서로 분리하기

 

Switch 안엔 

ISwitchable client;  한줄만 넣어버리는 거다

 

 

 

주의점

 

 

 

 

abstract 상속은 두개 이상 못한다

그래서 abstract 와 interface 를 같이 써서 다중 상속을 구현한다

 

 

 

abstract 추상 클래스 i interface 차이

 

 

반응형
Posted by 이름이 익명
:


https://www.youtube.com/watch?v=uFKd7JbI5QY&list=PL412Ym60h6uvqYiCVKk5NiEFpDEwOMQFX&index=7

 

 

 

대표적인 예시가 유니티 의 Animator 창

 

 

 

+


스테이트 패턴 의미

블럭 교체 방식

신호등 같은 것

오브젝트의 내부 상태가 바뀜에 따라 행동을 바꾸게 만드는 패턴

객체(Context)는 행동을 직접 처리하지 않고,
 현재 자신이 맡고 있는 "역할 배우(State Object)"에게 모든 실행 책임을 위임합니다

+

예시 

스탠스 바꾸기 가능
스탠스 는 딱 1개만 유지
2개 이상의 스탠스 보유 금지

얼굴 표정
Happy, Angry, Scared

모션 동작
Attacking, Blocking, UsingItem, Reloading


+

흔한 실수

Update ( ) 에서
if , else if , else if ... 이렇게 하면
코드를 읽기 힘들고, 수정 시 버그가 발생하기 쉽다

그래서 해결법이 스테이트 패턴임
각 상태(Idle, Run, Jump)를 별도의 클래스로 분리하는 것임


+

        if (currentState != null)
        currentState.Exit();
// 하나의 상태만을 위해서
// 이전 상태를 종료시킨다


+

상태이상으로 쓰면 안됨
독 이면서 마비 이면서 감속 상태이상. 이렇게 공존 가능하기 때문임

+

스테이트 패턴으로 코딩 짤 때는
새 클래스 (새로운 스크립트) 를 제작헤애 힌디
클래스 수가 많아지기 때문에 복잡해질 수 있다

 

 

 

 

 

상태 State
지금 현재 부품

전환 Transition
현재 부품이 다른 부품으로 갈아치워짐

이벤트 Event
일, 사건, 상태 전환을 일으키는 외부 입력

동작 Action
그 상태에선 모션을 실행 할거냐 이펙트를 재생할 거냐

 

 

 

 

i interface 를 사용

 

점프전 스쿼트 ,시작

점프 공중 체공 , 중간

점프 착지, 끝

 

이렇게 시작 중간 끝 세개로 나눔

 

 

+

 

 

실 구현 예시

 

if 플레이어가 땅에 붙어있음이 아닐 경우

점프 상태다

 

if 플레이어 속도가 0.1f 이상이다

움직이니까 걷는 상태다

 

 

반응형
Posted by 이름이 익명
:


15년차 그냥 무의미하게 게임 개발직 해온 사람
vs
초딩 때부터 틈날 때마다 게임개발을 상상해온 사람. 헤비 게이머. 이번에 큰맘먹고 게임 개발을 시작한 사람.


🥊 선수 분석

A. 고인물 개발자 (경력 15년, 열정 없음)
무기: 압도적인 구현력, 버그 수정 능력, 일정 관리, 최적화, 출시에 필요한 행정 절차 통달.
약점: 매너리즘. "이 정도면 됐지"라는 타협. 참신함 부족. 기획이 '안전빵'이거나 진부할 확률 높음. 마케팅에 귀찮음을 느낄 가능성 큼.
결과물 예상: 버그 없이 깔끔하게 돌아가지만, 어디서 본 듯한 시스템, 투박한 UI, 감동이 없는 양산형 게임.

B. 열정맨 뉴비 (헤비 게이머 + 3D 아트 능력, 열정 MAX)
무기: '게이머의 눈' (재미 판독기), '아트 능력' (때깔), 독창적인 세계관, 커뮤니티와의 소통 의지, 갈아 넣는 시간.
약점: 스파게티 코드, 발적화, 잦은 버그, 기획 엎기(Scope Creep), 개발 기간 무한 연장 위기.
결과물 예상: 최적화는 엉망이고 버그가 튀어나오지만, 스크린샷이 기가 막히고 스토리나 컨셉이 사람을 확 끌어당기는 매력적인 게임.

🏆 승자 예측: 누가 더 많이 팔까?
결론부터 말씀드리면, **B (열정맨 뉴비)**가 승리할 확률이 높습니다.
예상 판매량 차이: B가 A보다 약 300% ~ 1,000% (3배~10배) 더 많이 팝니다.

이유는 다음과 같습니다.
1. 인디 게임은 "첫인상(아트/컨셉)"이 90%다
A의 게임: 코드가 완벽해도 스크린샷이 밋밋하면 게이머는 클릭조차 안 합니다. 스팀(Steam) 스크롤을 내릴 때 0.5초 안에 시선을 못 잡으면 끝입니다.
B의 게임: 당신은 **'3D 아트'**와 **'영상'**을 배웠습니다. 이는 유니티 엔진에서 가장 강력한 무기입니다. 트레일러 영상과 스크린샷을 "사고 싶게" 만들 줄 압니다. 게이머들은 코드를 보고 사는 게 아니라, **'낭만'**을 보고 삽니다.

2. "헤비 게이머"의 감각은 돈으로 못 산다
A: "이 기능 구현하려면 2주 걸리니까 빼자. 이펙트 너무 화려하면 렉 걸리니까 줄이자." (개발 편의주의)
B: "내가 게이머라면 여기서 피가 팍 튀어야 쾌감이 쩔지! 밤을 새워서라도 넣는다!"
이 차이가 플레이어에게 **"개발자가 겜잘알이네"**라는 평을 듣게 만듭니다. 인디 시장에서 이 평가는 바이럴의 핵심입니다.

3. 커뮤니티 팬덤 형성
열정이 없는 A는 게임을 출시하고 "아, 끝났다" 하며 치킨 먹고 잡니다.
열정 넘치는 B는 개발 과정을 트위터/유튜브에 올리고, 유저 피드백에 흥분해서 답글 달고, 새벽에 패치합니다. 이 모습 자체가 팬덤을 만듭니다.

⚠️ 단, 치명적인 전제 조건
이 승부에는 거대한 함정이 있습니다.
A (고인물): 게임을 완성할 확률 99%
B (뉴비): 게임을 완성할 확률 5% 미만
B는 코딩의 벽, 최적화의 벽, 그리고 "내가 상상한 건 이건데 실제는 왜 이래"라는 괴리감 때문에 중도 포기할 확률이 매우 높습니다.
하지만, 질문하신 대로 "둘 다 출시했다"면,
B가 만든 **'투박하지만 영혼이 담긴 게임'**이 A가 만든 **'매끄럽지만 영혼 없는 제품'**을 압도적으로 이깁니다.

📝 결론
지금 질문자님은 Profile B에 해당하시는 것 같습니다.
"기술은 배우면 되지만, 감각과 열정은 배울 수 없습니다."
15년 차 개발자인 A는 B의 '상상력'과 '열정'을 가장 부러워할 것입니다. 코딩이 두려워서 유니티를 정면 돌파 중이라고 하셨죠? 그 두려움만 넘어서서 '출시'라는 결승선만 통과한다면, 당신의 게임은 반드시 A를 이깁니다.
[지금 당장 추천하는 행동]
상상하시는 그 거대한 세계관(소설, 시스템)을 다 구현하려 하지 마세요. 지금 배우고 있는 유니티 실력으로 만들 수 있는 가장 작은 규모로 축소해서, 하지만 비주얼(3D 아트)은 기깔나게 뽑아서 일단 하나를 완성해 보세요. 그게 승리의 열쇠입니다

반응형
Posted by 이름이 익명
:

 

 

https://www.youtube.com/watch?v=51sFAT2xZ40&list=PL412Ym60h6uvqYiCVKk5NiEFpDEwOMQFX&index=4

 

 

 


프로그래밍 디자인패턴 중 하나

 

꼬리 물기

대상의 액션에 반응하는 로직을 만드는 Observer 패턴

 

 

옵저버 패턴 대표 예시 : 
버튼 누르면 이벤트 실행
사운드 재생
파티클 재생
애니매이션 재생

 

 

 

+

 

 

 

 


🧠 언제 씀?

체력 HP가 바뀌면 UI 자동 업데이트 

인벤토리 바뀌면 아이콘 자동 새로고침 

퀘스트 상태 변경 → 여러 시스템 자동 반응 

이벤트 중심 구조 만들 때 




✨ 확장 쉬움


→ “HP 바뀌면 이펙트도 나오게 해!”
→ Observer 하나 더 붙이면 끝


    void OnEnable()
    {
        Player.HpChanged += UpdateHpUI;
    }

    void OnDisable()
    {
        Player.HpChanged -= UpdateHpUI;
    }

이런식으로 
OnEnable() , OnDisable() 를 쓴다 함


+

 

 

용어 설명

 

Subject : 버튼이 될 대상

 

Observer : 버튼을 누르면 뒤따라서 플레이 되는 것

 

 

+

 

 

Subject 방송국

Observer 청취자

 

청취자 사이는 모름

방송국은 청취자 모름

 

청취자 가 방송국 을 일방적으로 앎

 

청취자는 계속해서 늘릴 수 있음

 

 

 

Subject  공격 명령 

ㄴ> 모션 실행

ㄴ> 플레이어 대기

ㄴ> 이펙트 실행

ㄴ> 데미지 전달

ㄴ> 적 넉백

 

 

+

 


델리게이트에 함수 덧붙이기
이거도 옵저버 패턴임

 

+

 

 

event Action 도 델리데이트다

 

다른 클래스에서 사용 못한다고 함

 

 

+

 

 

어웨이크 에선 사과 함수 실행 
ㄴ> 사과 함수 에서는 코루틴 실행
ㄴ> 코루틴 에서는 사운드 재생 

 

이렇게 꼬리를 물어 옵저버를 늘릴 수 있다



+

 

짜투리 정보

if (abc != null)
abc 가 있을 경우 라는 뜻


머시기 . code
머시기를 int 넘버로 쓰겠다는 뜻

+

 

 

인스펙터 창의 이벤트 도 델리게이트 비슷한 건데

인스펙터 창에서 사용 가능하다는 게 장점임

 

+

 

단, 옵저버 패턴도 단점도 있다

 

 

점점 꼬리가 추가되니까 복잡해짐

순서를 모름

메모리 누수

무한 뺑뺑이 주의

디버깅 추적 어려움

 

 

옵저버 패턴은 하나의 찰흙처럼 서로 붙어버림

꼬리를 너무 많이 만들다보면

모듈화 캡슐화가 힘들어짐

 

 

 

반응형
Posted by 이름이 익명
:

https://www.youtube.com/watch?v=qhtL9EYtB3Q

 

 

 


팩토리 패턴

객체 : 
분리된 오브젝트 명사 물체
또는
분리된 수식 구조 함수 를 뜻함


팩토리 패턴은 객체 생성을 위한 구조임



item manager 싱글톤 아래에
총의 사거리, 공격력, 탄환 등 속성을
다 때려 넣으면 
편하긴 한데
나중에 유지보수가 힘들어짐

그래서 item Factory 라고 따로 분리를 해서
더 좋은 환경을 만들음

구체적인 건 매니저가 하는게 아니라
팩토리에게 넘기는 것


 

구체적인 팩토리↘  

                             큰팩토리 i 인터페이스

구체적인 팩토리 ↗

 

구체적인 대상 ↘  

                              대상 i Product

구체적인 대상  ↗

 

 

 

콘크리트 팩토리가 자식, 그냥 팩토리가 부모.

콘크리트 팩토리가 상속 받는다

 

 

i 인터페이스 = 속이 빈 껍데기

product = 생성할 대상

콘크리트 = 구체적인 거

 

+

 

오브젝트 풀링 하고 팩토리 패턴 을 병행 하기도 한다

 

오브젝트 풀링 : 여러 프리팹 오브젝트를 복붙해서 생성. 비활성화 활성화 하며 재사용

 

팩토리 패턴 : 미완성 i인터페이스를 이용해 생산제작만 담당 하는 클래스를 나눔

 

+

 

 


static 
= 객체를 만들지 않아도 바로 쓸 수 있는 공용 기능
즉, 인스턴스 없이 호출 가능한 정적 메서드를 만드는 키워드
new 없이 사용 가능

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

반응형
Posted by 이름이 익명
:

 
https://www.youtube.com/watch?v=51sFAT2xZ40&list=PL412Ym60h6uvqYiCVKk5NiEFpDEwOMQFX&index=4
 
 
명령 객체(Command)를 
저장·되돌리기·실행
커맨드 패턴(Command Pattern)*

“행동 + 필요한 모든 데이터” 를 하나의 객체로 싸서 택배 보내는 걸 의미함



누가 실행? 👉 Invoker
무엇을 실행? 👉 Command
실제 실행은 ? 👉 Receiver
 
 
Command (명령 자체) — 📄 지침서
Invoker (명령 예약 실행자) — 🕹️ 트리거
Receiver (실제 행동 담당자) — ⚙️ 실행
Client (세팅 담당) — 🧑‍💻 준비자


플레이어 이동, 애니 재생은 리시버 이다



왜 유니티에서 Command 패턴이 유용함?

✔ 여러 정보를 한 번에 넘기기 좋음

함수 파라미터 줄줄 쓰는 대신 Command 객체 하나.

✔ 입력 처리랑 실제 행동을 분리

Input → Command → 실행
(키보드/패드/UI 버튼 바뀌어도 행동 코드 수정 없음)

✔ Undo / Replay 쉽게 구현

Command를 리스트에 저장 →
되돌리기(Undo), 재생(Replay) 가능.

✔ AI / 스킬 시스템에 특히 강함

스킬 하나를 Command 로 만들면
데미지/ 효과/ 범위/ 시전자 등 모든 정보 패킹 가능.
 
+
 
undo 뒤로 가기
 
redo 뒤로 가기 취소
 
 
+
 
커맨드 객체는 아래 컨텐츠에 쓰일 수 있다
undo, redo, 시간여행 , 리플레이  , 따라쟁이 미믹몹
 
 
+
 

일반적으로 게임만들 땐
이렇게 인풋과 플레이어 이동만 연결함
 

 
커맨드 객체는 
거기서 더 나아가 인보커, 인터페이스, 커맨드 를 만듦
더 확장함
 
+
 
undo 매커니즘은 각각 다른데
이동 의 undo 가 가장 심플하다 함
 
공격 의 undo 는 데미지 되돌려주고 뭐하고 하는 구조라 함
 
+
 

 
언두 stack
리두 stack 각각 별개로 씀
 
스택은 후입후출
 
+
 
 

 
언두 리두 는 stack 이 아닌 queue 방식으로도 구현할 수 있다
선입선출 개념임
 
 
 
+
 

 
격투게임의 커맨드도 구현가능하다
→ → 공격키
이렇게 세 개의 커맨드 키를 순서대로 입력하면 기술이 나가게 할 수 있음
 
관련 용어는
command pattern combo , queue
 
 
+
 

 
스킬 하나마다 클래스를 따로 분리시켜야 좋음
 
스킬 추가가 쉬워서 확장성 있고
테스트 하기도 좋음
 
 
+



커맨드 패턴 요약

소분한다


대상과 명령을 같이 두지 않고 따로 둠
단일 책임 원칙
single responsibility principle

기존 코드 수정 필요없게 만듦
개방/폐쇄 원칙
open/closed principle


여러 요청들을 저장하고 로그로 기록 가능

결합하지 않아서 유연해짐


분리를 했기 때문에 재사용성을 높임
한 Command 클래스를 데이터만 바꿔서 계속 재사용




명령,호출,수신 
이렇게 나눠서 복잡해 보이긴 함

오버헤드 만드는 게 단점,
관리자 위에 관리자 이런 게 많아져서 복잡해지는 게 단점



+

오버헤드 뜻
overhead

추가 비용이 든다 
더 느려질 수 있다

호출이 너무 많아질 수 있다


 

반응형
Posted by 이름이 익명
:

https://www.youtube.com/watch?v=fYhS5RYsN0M&list=PL412Ym60h6uvqYiCVKk5NiEFpDEwOMQFX&index=3

 

 

쉐이더 그래프로

모자이크 효과를 나타냄

 

 

Resolution 의 Default 를 낮게 조작하여 픽셀화 시킨 것임

 

 

 

 

이미지의 가장자리는 마스크 기능을 이용하여

둥글게 처리 함

 

 

유리가 빛나듯 반짝이는 효과도

쉐이더 그래프로 구현한다

 

 

+

 

 

쉐이더 그래프의 시작

 

 

하이어라키 창 - 어셋 리스트 중 shader graph
- urp - canvas shader graph

를 만들어 시작한다

 


셰이더 만들어 진 것에
universal - material - canvas 로 변경해서 만들기도 한다

 

 

 

+

 

 

ui 용 쉐이더는

버텍스, 광원은 지원 불가능하다 함

 

 

+

 

 

ui 용 쉐이더는 Animation 창과 연동 안된다고 함

 

그래서 스크립트 로 대응해야 한다 함

 

 

 

그러나

 

 

https://assetstore.unity.com/packages/2d/gui/animate-ui-materials-253197?srsltid=AfmBOopyfm33bkGZyLIQKF1mmesb3e6aPJQ_ISXUPSkrRwJkxQB_E_Gq

외부 어셋
animate ui materials 를 이용하면

ui 용 쉐이더는 Animation 창과 연동 된다고 함

 

 

 

+

 

 

 

 

반응형
Posted by 이름이 익명
:

https://www.youtube.com/watch?v=RkJyyi6lmQ8&list=PL412Ym60h6uvqYiCVKk5NiEFpDEwOMQFX

 

 

 


물리 선을 생성해서 여기에 닿는 오브젝트가
뭔지 알아내는 용도



레이는 다른 오브젝트 감지를 위해 많이 쓰는 기능이다

 

 


원리는 콜라이더 가진 오브젝트를
레이저 형식으로 쏴서 검색하는 것


레이저 당할 오브젝트는 꼭 collider 컴포넌트를 가지고 있어야 한다



+



if (Physics.Raycast(transform.position, transform.forward))
{
    // 광선이 어떤 콜라이더에든 닿았을 때 실행되는 코드
    Debug.Log("Hit something!"); 
}

닿았는지(bool 값)만 확인하는 형태

 

 


+

 

 

Ray 의 방향이 올바른지

Ray 의 길이가 적당한지

 

 

 

해당 오브젝트의 Layer 가 제대로 설정되었나 확인하라

 



LayerMask 쓴다면,
Raycast 에서 maxDistance도 같이 써라

벽, 장식은 무시한 특정 대상으로 제한함
지정된 거리 이내만 검사험

+

 


Queries Hit Trigger 

Project Settings → Physics → Queries Hit Triggers

Trigger도 감지해야 하는 경우

Raycast나 Overlap이 너무 많은 Trigger에 걸려서 원치 않는 감지가 너무 많을 때



+



raycast 는 scene 창에서 보이지 않는다

Gizmos.DrawLine ( ) 함수를 쓰면 씬 창에서도 보인다


 

 

 

또는!

Analysis - Physics Debugger 를 활용하면 

실시간 모든 레이 캐스팅을 쉽게 확인 가능함

 

 

 

 

+

 

 

 

마우스 클릭 과 레이 캐스트 를 활용해서

월드 오브젝트를 클릭하는 상호작용 만들기

 

Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
 // 마우스 위치에서 레이 생성

이걸 이용함


자세한 강좌 링크

https://cafe.naver.com/unityhub/146263?utm_source=youtube-dc&utm_medium=social&utm_campaign=kr_letyouknowanything_raycasting

반응형
Posted by 이름이 익명
: