개발단에 가입하여 베르의 게임 개발 유튜브를 후원해주세요!

 

베르의 게임 개발 유튜브

안녕하세요! 여러분들과 함께 게임 개발을 공부하는 베르입니다! 게임 개발에 도움이 되는 강좌들을 올리는 채널입니다! [투네이션 후원] https://toon.at/donate/637735212761460238 [유니티 어필리에이트

www.youtube.com

 

안녕하세요! 여러분들과 함께 게임 개발을 공부하는 베르입니다!

베르의 게임 개발 유튜브의 디스코드 채널 개설 공지입니다!

 

타임라인

0:00 인트로

0:42 디스코드 채널 소개와 가입 방법

2:33 질문 채널 사용법

3:57 아웃트로

 

[디스코드 채널]

 

 

Join the 베르의 게임 개발 채널 Discord Server!

Check out the 베르의 게임 개발 채널 community on Discord - hang out with 399 other members and enjoy free voice and text chat.

discord.com

인트로

안녕하세요. 여러분들과 함께 게임 개발을 공부하는 베르입니다.

이번에는 베르의 게임 개발 유튜브의 디스코드 채널이 만들어졌다는 것을 알려드리려고 합니다.

사실 디스코드 채널 생성 공지는 얼마 전에 했던 라이브 스트리밍과 커뮤니티 글을 통해서 드렸었지만, 라이브 스트리밍과 커뮤니티 글은 접근성이 떨어져 못본 분들이 많은 듯해서 이렇게 영상을 만들게 되었습니다.

유튜브 채널을 계속 운영해오면서 강좌에 대한 질문이나 궁금하신 점들을 주로 댓글로 보고 답변을 드렸었는데 아무래도 유튜브 댓글로는 이미지나 영상을 첨부할 수 없어서 자세한 내용 파악이나 답변이 어려운 점이 많았습니다.

그래서 이렇게 이미지나 영상들을 포함해서 질문할 수 있는 사이트들을 여럿 고민하다 디스코드에 채널을 열기로 결정했습니다.

디스코드 채널 가입과 채널 소개

우선 영상 하단에 있는 디스코드 채널 링크를 통해 베르의 게임 개발 채널에 가입하실 수 있습니다.

채널에 가입하고 나면 이렇게 여러 개의 채팅 채널을 보실 수 있습니다.

먼저 공지 채널은 강좌가 업로드되거나 베르의 게임 개발 유튜브 채널에 이벤트가 있을 때 공지가 올라오는 채널입니다.

아직은 별다른 이벤트가 없어서 대부분은 강좌 업로드 공지만 올라오지만 언젠가 이벤트를 열게 되어서 이벤트 공지를 올릴 때가 오면 좋겠네요.

그 다음 일반 채널은 채널에 접속하신 유저들끼리 대화를 나누는 채널입니다.

욕설이나 어그로, 도배 등 나쁜 행동은 삼가해주시고 자유롭게 대화를 나눠주세요.

그 다음 질문 채널은 강좌나 개발에 있어서 궁금하거나 도움이 필요한 부분을 질문으로 올려주시면 되는 채널입니다.

질문 채널을 이용하는 방법은 잠시 후에 좀 더 자세하게 설명하기로 하고 다음 채널 설명으로 넘어가겠습니다.

그 다음 채널은 강의요청 채널입니다.

이 채널에서는 여러분들이 원하는 강좌를 요청해주시면 됩니다.

요청해주신 강좌는 제가 만들 수 있는 강좌라면 저의 강좌 목록에 올라가게 됩니다.

많이 어렵거나 제가 모르는 분야라서 제가 하기 어려운 내용이라면 요청을 받아들이지 않을 수도 있지만 가급적이면 리스트에 올리고 연구를 하는 방식으로 진행하려고 합니다.

그리고 이미 리스트에 있는 주제라면 리스트에서 우선 순위가 올라가게 됩니다.

물론 한 분이 여러 번 요청하는 건 기록해두고 한 계단만 올릴 예정이니 요청을 도배하지는 말아주세요.

그 다음 건의 채널은 유튜브 채널이나 디스코드 채널 운영과 관련하여 이렇게 했으면 좋겠다하는 사항을 제안하는 채널입니다.

마지막으로 프로젝트 자랑 채널은 여러분들이 만들거나 개발 중인 프로젝트를 자랑하기 위한 채널입니다.

자신의 프로젝트를 자랑하거나 다른 사람의 프로젝트를 보면서 칭찬과 격려를 아끼지 말아주세요.

그리고 이 채널에 올려주신 프로젝트는 제 유튜브 영상이나 스트리밍을 통해서 소개될 수 있습니다.

베르의 게임 개발 채널 디스코드는 현재 이렇게 운영되고 있습니다.

질문 채널 사용법

각 채널에 대한 설명을 끝마쳤으니 이제 질문 채널을 사용하는 법에 대해서 자세히 설명해보겠습니다.

먼저 질문을 하실 때는 하려고 하는 질문이 다른 유저가 한 적이 있는지 확인해보시면 좋습니다.

질문 채널의 상단에 #모양으로 된 스레드 버튼을 눌러보면 현재 해결 중인 질문과 이미 해결된 질문들을 볼 수 있습니다.

스레드에서 활성화를 선택해서 나오는 스레드들은 현재 해결 중이거나, 해결된지 얼마 안 된 질문입니다.

그리고 그 옆에 보관됨을 선택하면 해결된지 시간이 꽤 지난 질문들을 볼 수 있습니다.

여기서 궁금한 내용을 검색해서 찾아보고 원하는 해결책이 아니라면 질문을 새로 올려주시면 됩니다.

질문을 올리실 때 버그와 관련된 내용이라면 스크린샷이나 GIF, 영상, 로그 등 해당 문제와 관련된 자료를 첨부하시면 좀 더 원활한 답변이 가능합니다.

그리고 이 질문 채널에서는 저 뿐만 아니라 여러분들도 알고 계시는 내용의 질문에 답변을 함께 달아주시면 모두에게 도움이 됩니다.

질문에 답변을 남기시는 방법은 해당 질문 채팅에 마우스 커서를 올리고 스레드 만들기 버튼을 클릭하면 답변을 남길 스레드를 만들 수 있습니다.

스레드를 만들 때는 스레드의 제목을 정해야 하는데 이 제목은 [작성자의닉네임]을 적고 유니티와 관련된 내용이라면 [유니티], 언리얼4 엔진과 관련된 내용이면 [언리얼4], 그 외의 내용이라면 [기타]처럼 [질문 카테고리]를 적어주고, 본 제목으로 질문 내용을 요약해서 적어주시면 됩니다.

아웃트로

이번 영상에서는 베르의 게임 개발 유튜브의 디스코드 채널 생성 공지를 해드렸습니다.

앞으로 질문을 디스코드 채널을 통해서 해주시느라 영상의 댓글이 줄어들 수 있을 것 같습니다.

그래도 유튜브 영상에 댓글 많이 남겨주세요.

이 채널의 강좌들은 시청자 여러분들의 시청과 후원으로 제작되며 채널의 운영에 큰 도움이 됩니다.

이상 베르의 게임 개발 유튜브였습니다. 감사합니다.

 

[유니티 어필리에이트 프로그램]

아래의 링크를 통해 에셋을 구매하시거나 유니티를 구독하시면 수익의 일부가 베르에게 수수료로 지급되어 채널의 운영에 도움이 됩니다.

 

에셋스토어

여러분의 작업에 필요한 베스트 에셋을 찾아보세요. 유니티 에셋스토어가 2D, 3D 모델, SDK, 템플릿, 툴 등 여러분의 콘텐츠 제작에 날개를 달아줄 다양한 에셋을 제공합니다.

assetstore.unity.com

 

Easy 2D, 3D, VR, & AR software for cross-platform development of games and mobile apps. - Unity Store

Have a 2D, 3D, VR, or AR project that needs cross-platform functionality? We can help. Take a look at the easy-to-use Unity Plus real-time dev platform!

store.unity.com

 

Create 2D & 3D Experiences With Unity's Game Engine | Unity Pro - Unity Store

Unity Pro software is a real-time 3D platform for teams who want to design cross-platform, 2D, 3D, VR, AR & mobile experiences with a full suite of advanced tools.

store.unity.com

[투네이션]

 

-

 

toon.at

[Patreon]

 

WER's GAME DEVELOP CHANNEL님이 Game making class videos 창작 중 | Patreon

WER's GAME DEVELOP CHANNEL의 후원자가 되어보세요. 아티스트와 크리에이터를 위한 세계 최대의 멤버십 플랫폼에서 멤버십 전용 콘텐츠와 체험을 즐길 수 있습니다.

www.patreon.com

 

반응형

다른 cs 파일의 클래스 호출과 static 로직에 대하여

 

로딩 씬(Loading Scene) 구현하기 글에 달아주신 ㅇㅇ님의 질문 댓글에 대한 답변입니다. 질문의 내용은 아래와 같습니다.

 

 

로딩 씬 구현하기 글을 보면 LoadingSceneManager 클래스는 아래와 같이 구현되어 있습니다.

 

LoadingSceneManager.cs

using System.Collections;

using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SceneManagement;

public class LoadingSceneManager : MonoBehaviour
{
    public static string nextScene;

    [SerializeField]
    Image progressBar;

    private void Start()
    {
        StartCoroutine(LoadScene());
    }

    public static void LoadScene(string sceneName)
    {
        nextScene = sceneName;
        SceneManager.LoadScene("LoadingScene");
    }

    IEnumerator LoadScene()
    {
        yield return null;

        AsyncOperation op = SceneManager.LoadSceneAsync(nextScene);
        op.allowSceneActivation = false;

        float timer = 0.0f;
        while (!op.isDone)
        {
            yield return null;

            timer += Time.deltaTime;

            if (op.progress >= 0.9f)
            {
                progressBar.fillAmount = Mathf.Lerp(progressBar.fillAmount, 1f, timer);

                if (progressBar.fillAmount == 1.0f)
                    op.allowSceneActivation = true;
            }
            else
            {
                progressBar.fillAmount = Mathf.Lerp(progressBar.fillAmount, op.progress, timer);
                if (progressBar.fillAmount >= op.progress)
                {
                    timer = 0f;
                }
            }
        }
    }
}

 

첫 번째 질문에서의 LoadingSceneManager.LoadScene("Scene2");를 호출하는 클래스는 아래와 같이 구현되어 있었습니다.

 

TestCode.cs

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class TestCode : MonoBehaviour
{

    // Use this for initialization
    void Start ()
    {
        LoadingSceneManager.LoadScene("Scene2");
    }
}

 

 

다른 cs 파일의 클래스 호출

 

우선 첫 번째로 LoadingSceneManager.cs 파일에 구현된 LoadingSceneManager 클래스를 어떻게 TestCode.cs 파일로 다른 선언 없이 바로 호출할 수 있었느냐라는 의도로 질문하신 것 같습니다. 어떻게 다른 cs 파일에 정의된 클래스를 바로 호출할 수 있었냐는 질문을 하신 걸로 보아, ㅇㅇ님께서는 아마 유니티를 배우시기 이전에 C/C++과 같이 다른 소스 파일의 코드를 불러오기 위해서는 별도의 include 등의 전처리가 필요한 언어를 배우신게 아닌가 싶습니다.

 

그런 C/C++에서는 다른 소스 파일의 클래스를 불러와서 사용하기 위해서는 아래의 예시와 같이 전처리기에서 사용하고자 하는 클래스가 담긴 헤더를 포함시켜주어야 합니다.

 

LoadingSceneManager.h

#include <string>

 

#pragma once

 

class LoadingSceneManager

{

public:

static void LoadingScene(std::string sceneName)

{

// 씬 로딩 처리 ...

}

};

 

TestCode.h

#include "LoadingSceneManager.h" // C/C++에서는 이렇게 호출하고자 하는 클래스가 담긴 헤더를 호출해주어야 한다.

 

#pragma once

 

class TestCode

{

public:

void Start()

{

LoadingSceneManager::LoadingScene("Scene2");

}

};

 

하지만 C#에서는 헤더 파일이 따로 존재하지 않고 cs파일만 존재하며, 같은 프로젝트 안에 있는 cs파일이라면, 다른 cs 파일 안에 정의된 클래스를 가져와서 사용할 수 있다는 뜻입니다.

 

 

정적 함수(Static Function)

 

두 번째 질문으로는 static으로 선언된 LoadScene() 함수가 LoadSceneManager 오브젝트가 없는 다른 씬에서 어떻게 호출될 수 있는가 입니다.

 

 

 

 

로딩 씬 구현하기 글에서 구현한 방식을 그림으로 표현하면 위의 이미지와 같습니다. 씬은 Scene1, LoadingScene, Scene2가 존재하고 TestCode 클래스의 인스턴스는 Scene1에서만 존재하고 LoadSceneManager 클래스의 인스턴스는 LoadingScene에서만 존재합니다. 그런데 Scene1에서 LoadScene에만 존재하는 LoadSceneManager의 함수를 호출할 수 있느냐가 메인인데, 이 부분은 정적 함수(static function)에 대한 기본적인 이해가 필요합니다.

 

    public static void LoadScene(string sceneName)
    {
        nextScene = sceneName;
        SceneManager.LoadScene("LoadingScene");

    }

 

코드를 다시 보면 아시겠지만, LoadSceneManager 클래스의 LoadScene(string) 함수는 static으로 선언되어 있습니다. 이렇게 static으로 선언된 함수를 정적 함수라고 하며, 이러한 정적 함수는 클래스의 인스턴스가 생성되지 않았더라도 컴파일 시점에 전역에 할당되어 있습니다. 그렇기 때문에 TestCode.cs에서와 같이 해당 클래스의 이름을 통해서 곧바로 접근이 가능해집니다.

 

다시 한번 풀어서 이야기하자면, TestCode.cs가 실행되는 때에는 LoadSceneManager 클래스의 인스턴스가 생성되어 있지 않지만, 전역에 할당되어 있는 LoadSceneManager 클래스의 전역 함수에 접근하여 정적 변수(이것 역시 전역에 할당되어 모든 LoadSceneManager 클래스의 인스턴스들이 공유한다.)인 nextSceneName에 다음으로 넘어갈 씬 이름을 전달하고 LoadingScene을 불러옵니다. 

 

LoadingScene이 전부 불러와지면 LoadSceneManager 클래스의 인스턴스가 생성되고, LoadSceneManager의 Start() 함수가 실행되면서 LoadScene 코루틴을 호출하는 순서로 동작합니다.

 


 

PS.

로딩 씬 구현하기 글은 2017년에 작성한 오래 전 글이라 내용이 많이 불친절한 편입니다. 기본적인 내용은 많이 바뀌지 않겠지만, 유니티 버전이 많이 바뀌면서 좀 더 알아보기 쉽게 새로 작성할 계획은 오래 전부터 세워둔 상태였는데, 이래저래 시간을 보내면서 아직까지 작성하지 못했습니다. 최대한 이른 시일 내로 새로운 버전으로 작성해보도록 하겠습니다.

 

[유니티 어필리에이트 프로그램]

아래의 링크를 통해 에셋을 구매하시거나 유니티를 구독하시면 수익의 일부가 베르에게 수수료로 지급되어 채널의 운영에 도움이 됩니다.

 

에셋스토어

여러분의 작업에 필요한 베스트 에셋을 찾아보세요. 유니티 에셋스토어가 2D, 3D 모델, SDK, 템플릿, 툴 등 여러분의 콘텐츠 제작에 날개를 달아줄 다양한 에셋을 제공합니다.

assetstore.unity.com

 

Easy 2D, 3D, VR, & AR software for cross-platform development of games and mobile apps. - Unity Store

Have a 2D, 3D, VR, or AR project that needs cross-platform functionality? We can help. Take a look at the easy-to-use Unity Plus real-time dev platform!

store.unity.com

 

Create 2D & 3D Experiences With Unity's Game Engine | Unity Pro - Unity Store

Unity Pro software is a real-time 3D platform for teams who want to design cross-platform, 2D, 3D, VR, AR & mobile experiences with a full suite of advanced tools.

store.unity.com

[투네이션]

 

-

 

toon.at

[Patreon]

 

WER's GAME DEVELOP CHANNEL님이 Game making class videos 창작 중 | Patreon

WER's GAME DEVELOP CHANNEL의 후원자가 되어보세요. 아티스트와 크리에이터를 위한 세계 최대의 멤버십 플랫폼에서 멤버십 전용 콘텐츠와 체험을 즐길 수 있습니다.

www.patreon.com

[디스코드 채널]

 

Join the 베르의 게임 개발 채널 Discord Server!

Check out the 베르의 게임 개발 채널 community on Discord - hang out with 399 other members and enjoy free voice and text chat.

discord.com

 

반응형
  1. 료용 2019.12.26 02:02

    닉네임도 ㅇㅇ이라는 싸가지없는 닉으로 해놨는데 답변해주셔서감사합니다.

싱글플레이 게임을 멀티플레이 게임으로 

 

발전시켰을 때 적 AI가 플레이어를 

 

인식하지 못하는 문제

 

UNet Tutorial (13) - 네트워크 애니메이터(Network Animator) 글에 달아주신 myouzing님의 질문 댓글에 대한 답변입니다. 질문의 내용은 다음과 같습니다.

 

 

질문의 내용으로는 싱글플레이 FPS 게임을 만드시다가, UNet을 이용해서 그 게임을 멀티플레이로 발전시켰을 때, 적 AI가 플레이어를 인식하지 못하는 것으로 보입니다. 

 

질문 댓글의 내용이 간략하고 자세한 정황과 멀티플레이 설계가 어떻게 되어있는지 알 수 없기 때문에 완전한 해결책은 알려드리기 어려울 것 같습니다. 하지만 증상을 미루어보아 짐작했을 때, 의심이되는 상황이 있습니다.

 

의심이 되는 부분은 서버와 클라이언트에서 양 측에 적 AI 오브젝트와 플레이어 오브젝트가 둘 다 정상적으로 네트워크 오브젝트로서 생성되어 있는가 하는 부분입니다. 예를 들어 서버와 클라이언트에 적 AI가 생성되어 동기화 되고 있는데 플레이어 오브젝트가 클라이언트에서만 생성되서 서버에서는 생성되지 않은 경우라면, 클라이언트의 플레이어가 적 AI에게 다가가도 서버 측의 적 AI가 보았을 때는 주변에 아무도 없기 때문에 플레이어를 인식하지 못하는 경우가 발생할 수 있습니다.

 

그 외에도 기본적인 문제로 신텍스 에러가 발생하지 않더라도 플레이하는 도중에 Null Reference나 Missing Reference 같은 오류가 발생한다면 코드가 진행하다가 멈추기 때문에 로그를 잘 확인해보셔야 할 것 같습니다.

 

[유니티 어필리에이트 프로그램]

아래의 링크를 통해 에셋을 구매하시거나 유니티를 구독하시면 수익의 일부가 베르에게 수수료로 지급되어 채널의 운영에 도움이 됩니다.

 

에셋스토어

여러분의 작업에 필요한 베스트 에셋을 찾아보세요. 유니티 에셋스토어가 2D, 3D 모델, SDK, 템플릿, 툴 등 여러분의 콘텐츠 제작에 날개를 달아줄 다양한 에셋을 제공합니다.

assetstore.unity.com

 

Easy 2D, 3D, VR, & AR software for cross-platform development of games and mobile apps. - Unity Store

Have a 2D, 3D, VR, or AR project that needs cross-platform functionality? We can help. Take a look at the easy-to-use Unity Plus real-time dev platform!

store.unity.com

 

Create 2D & 3D Experiences With Unity's Game Engine | Unity Pro - Unity Store

Unity Pro software is a real-time 3D platform for teams who want to design cross-platform, 2D, 3D, VR, AR & mobile experiences with a full suite of advanced tools.

store.unity.com

[투네이션]

 

-

 

toon.at

[Patreon]

 

WER's GAME DEVELOP CHANNEL님이 Game making class videos 창작 중 | Patreon

WER's GAME DEVELOP CHANNEL의 후원자가 되어보세요. 아티스트와 크리에이터를 위한 세계 최대의 멤버십 플랫폼에서 멤버십 전용 콘텐츠와 체험을 즐길 수 있습니다.

www.patreon.com

[디스코드 채널]

 

Join the 베르의 게임 개발 채널 Discord Server!

Check out the 베르의 게임 개발 채널 community on Discord - hang out with 399 other members and enjoy free voice and text chat.

discord.com

 

반응형

Q&A ::  일반 클래스 내부에

MonoBehaviour 상속 클래스

멤버 변수 저장하기

 

유니티에서 JSON 사용하기(Unity JSON Utility) 글에 달아주신 psj님의 질문 댓글에 대한 답변입니다. 질문의 내용은 다음과 같습니다.

 

안녕하세요 올려주신 글 보고 잘 공부하고 갑니다.
궁금한 게 하나 있는데요
public Class Aclass : MonoBehaviour {}
public Class Bclass
{
Aclass a;
}
이런 식으로 MonoBahaviour를 상속 받지 않은 순수 클래스 안에 멤버 변수로 MonoBehaviour를 상속 받은 클래스가 있을 경우에는
Bclass안에 Aclass를 어떤 식으로 저장해야하나요??

출처: https://wergia.tistory.com/164#comment15327425 [베르의 프로그래밍 노트]
안녕하세요 올려주신 글 보고 잘 공부하고 갑니다.
궁금한 게 하나 있는데요
public Class Aclass : MonoBehaviour {}
public Class Bclass
{
Aclass a;
}
이런 식으로 MonoBahaviour를 상속 받지 않은 순수 클래스 안에 멤버 변수로 MonoBehaviour를 상속 받은 클래스가 있을 경우에는
Bclass안에 Aclass를 어떤 식으로 저장해야하나요??

출처: https://wergia.tistory.com/164#comment15327425 [베르의 프로그래밍 노트]

안녕하세요 올려주신 글 보고 잘 공부하고 갑니다.
궁금한 게 하나 있는데요

 

public class Aclass : MonoBehaviour {}

 

public class Bclass
{
    Aclass a;
}


이런 식으로 MonoBahaviour를 상속 받지 않은 순수 클래스 안에 멤버 변수로 MonoBehaviour를 상속 받은 클래스가 있을 경우에는
Bclass안에 Aclass를 어떤 식으로 저장해야하나요??

안녕하세요 올려주신 글 보고 잘 공부하고 갑니다.
궁금한 게 하나 있는데요
public Class Aclass : MonoBehaviour {}
public Class Bclass
{
Aclass a;
}
이런 식으로 MonoBahaviour를 상속 받지 않은 순수 클래스 안에 멤버 변수로 MonoBehaviour를 상속 받은 클래스가 있을 경우에는
Bclass안에 Aclass를 어떤 식으로 저장해야하나요??

출처: https://wergia.tistory.com/164#comment15327425 [베르의 프로그래밍 노트]

 

모노비헤이비어 클래스를 상속받지 않은 일반 클래스인 Bclass가 모노비헤이비어 클래스를 상속받은 Aclass를 멤버 변수로서 가질 때, 이 Bclass의 멤버 변수인 a에 어떻게 Aclass의 객체를 대입/할당 할 수 있는지에 대한 질문입니다.

 

우선 여기서 알아두어야 할 점은, Bclass는 앞서 말했듯이 모노비헤이비어 클래스를 상속받지 않았기 때문에 Awake(), Start(), Update() 등의 함수를 가지지 못했고, 유니티 엔진에 의해서 코드가 실행되지 않는다는 것입니다. 이 클래스에 속한 함수 등의 코드를 실행시키기 위해서는 유니티 엔진에 의해서 작동하는 모노비헤이비어 클래스를 상속받는 클래스의 동작을 통해서 간접적으로 실행되어야 할 것입니다.

 

이렇게 Bclass를 가지고 함수를 실행하기 위한 클래스를 다음과 같이 Cclass라고 정의하겠습니다.

 

public class Cclass : MonoBehaviour

{

    private Bclass b;

 

    private void Awake()

    {

        b = new Bclass();

    }

}

 

그리고 다시 Bclass를 살펴보면 Bclass의 멤버 변수인 a는 private로 선언되어 있어서 접근 방법이 없음을 알 수 있습니다. 외부에서 이 a에 값을 저장하거나 볼 수 있는 경로를 제공해주어야 합니다. 이를 위한 방법은 여러가지가 있습니다.

 

첫 번째로는 멤버변수의 접근지정자를 public으로 선언하는 것입니다.

 

public class Bclass
{
    public Aclass a;
}

 

접근지정자를 public으로 선언하면 아래의 예시와 같이 b아래의 a에 곧바로 접근하여 값을 대입할 수 있게 됩니다.

 

public class Cclass : MonoBehaviour

{

    private Bclass b;

 

    private void Awake()

    {

        b = new Bclass();

    }

 

    private void Start()

    {

        b.a = FindOfObject<Aclass>();

    }

}

 

두 번째 방법은 private인 멤버 변수에 접근해서 값을 넣도록 해주는 기능을 가진 함수를 만드는 것입니다.

 

public class Bclass
{
    private Aclass a;

 

    public void SetA(Aclass a)

    {

        this.a = a;

    }

 

    public Aclass GetA()

    {

        return a;

    }

}

 

private인 멤버 변수에 접근해서 값을 넣도록 해주는 함수를 만듬으로써 함수를 통해서 b안에 있는 a의 값을 수정할 수 있게 됩니다.

 

public class Cclass : MonoBehaviour

{

    private Bclass b;

 

    private void Awake()

    {

        b = new Bclass();

    }

 

    private void Start()

    {

        b.SetA(FindOfObject<Aclass>());

    }

}

 

[유니티 어필리에이트 프로그램]

아래의 링크를 통해 에셋을 구매하시거나 유니티를 구독하시면 수익의 일부가 베르에게 수수료로 지급되어 채널의 운영에 도움이 됩니다.

 

에셋스토어

여러분의 작업에 필요한 베스트 에셋을 찾아보세요. 유니티 에셋스토어가 2D, 3D 모델, SDK, 템플릿, 툴 등 여러분의 콘텐츠 제작에 날개를 달아줄 다양한 에셋을 제공합니다.

assetstore.unity.com

 

Easy 2D, 3D, VR, & AR software for cross-platform development of games and mobile apps. - Unity Store

Have a 2D, 3D, VR, or AR project that needs cross-platform functionality? We can help. Take a look at the easy-to-use Unity Plus real-time dev platform!

store.unity.com

 

Create 2D & 3D Experiences With Unity's Game Engine | Unity Pro - Unity Store

Unity Pro software is a real-time 3D platform for teams who want to design cross-platform, 2D, 3D, VR, AR & mobile experiences with a full suite of advanced tools.

store.unity.com

[투네이션]

 

-

 

toon.at

[Patreon]

 

WER's GAME DEVELOP CHANNEL님이 Game making class videos 창작 중 | Patreon

WER's GAME DEVELOP CHANNEL의 후원자가 되어보세요. 아티스트와 크리에이터를 위한 세계 최대의 멤버십 플랫폼에서 멤버십 전용 콘텐츠와 체험을 즐길 수 있습니다.

www.patreon.com

[디스코드 채널]

 

Join the 베르의 게임 개발 채널 Discord Server!

Check out the 베르의 게임 개발 채널 community on Discord - hang out with 399 other members and enjoy free voice and text chat.

discord.com

 

반응형

+ Recent posts