소중한 강의 감사드립니다. 23:58 public virtual void OnHit() 에 HP_Init() 을 별도로 작업해 주셨는데 그 구체적인 이유가 궁금합니다. 설명해 주신 바로는 Interaction_Hit.cs 에 public override void OnHit() 에 shakeTree 부분이 문제 된다고 하셨는데 어떤 문제인지에 대한 언급은 없으셔서요
6버전이 뭐가 많이 다른가 봅니다. 코드상에도 Init 당시에 Pool 에서 SetActive True로 바꿔지면 invoke > Init으로 연결되면서 이미 화면에 나타난 상태라서 Update돌기전에 1프레임정도 사라지기전 위치가 표시에서 떠있다가 이후 Update문을 타면서 원래자리로 찾아가는 현상이 발생했습니다. 아무리봐도 무조건 발생할것 같은 상황같았는데, 강사님 화면에서 아무리 느리게봐도 그렇게 안보이더라구요 ㅜㅜ 그래서 Init에다가 Update문에 있는 위치동기화를 1회해주었는데 Cam이 Null인상태였습니다 Start가 먹지 않는것 같아 로그를 찍어보니 Init이후에 Start가 호출이 되더라구요 그래서 Start를 Awake로 변경했더니 해결했습니다. 그리고 tr.parent 도 자꾸 warning떠서 tr.SetParent(tr~)로 변경해서 해결했습니다. 버전이 달라서 그런가 이슈가 좀 있네요ㅜㅜ
목표가 '카피바라 Go' 정도의 2D RPG 게임을 만드는 건데, 혹시 괜찮으시다면 UGS를 활용한 2D RPG 게임 강의를 부탁드려도 될까요? 유니티 관련 강의를 여러 개 들어봤지만 대부분 아쉬움이 컸던 반면, 강사님의 강의 스타일과 내용이 매우 만족스러워 이렇게 요청드리게 되었습니다. 강의 내용으로 전투 시스템, 인벤토리 시스템, 퀘스트 시스템과 함께 UGS를 활용한 능력치 테이블 로드, 유저 데이터 저장, CCD 패치 시스템 등 실제 게임 개발에 적용할 수 있는 내용들을 포함해 주시면 큰 도움이 될 것 같습니다. 꼭 UGS가 아니더라도 다른 서버를 활용하는 방식도 괜찮습니다.
StateMachine을 순수 C# 클래스가 아니라 MonoBehavior를 상속시켜서 구현하면 Wrapping 과정을 할 필요 없이 MonoStateMachine의 역할을 그대로 할 수 있지 않나요? StateMachine자체가 유니티와 독립적으로 돌아가는 순수 로직 클래스라 분리하신건지 만약 그렇다면 분리했을 때 추후에 어떤 장점이 있는건지, 아니면 다른 의도가 있으신건지 궁금해서 질문 올렸습니다.
안녕하세요, 예제를 따라해보고 있습니다만 마지막 trigger이벤트에서 물체가 닿아 sun이 움직이는 것은 구현하였으나, 계속해서 stay하는 중임에도 sun이 조금 움직이다가 멈추고, 다시 player를 조금 움직이면 또 조금 움직이다가 멈추는 현상이 일어납니다. 교수님이 올려주신 강의에도 같은 현상이 있는 것 같은데 이는 왜 일어나는 것인지 궁금합니다. 답변해주시면 정말 감사하겠습니다.
You are trying to create a MonoBehaviour using the 'new' keyword. This is not allowed. MonoBehaviours can only be added using AddComponent(). Alternatively, your script can inherit from ScriptableObject or no base class at all UnityEngine.MonoBehaviour:.ctor () 이라는 메세지가 뜹니다 작동하는데는 문제가 없는 것 같지만 자꾸 뜨니까 거슬려서 해결 하고 싶습니다. 아래는 코드입니다. using UnityEngine; public class Managers : MonoBehaviour { static Managers s_instance; // 유일성 보장된다 static Managers Instance { get { Init(); return s_instance; } } // 유일한 매니저를 갖고 온다 InputManager _input = new InputManager(); ResourceManager _resource = new ResourceManager(); public static InputManager Input { get { return Instance._input; } } public static ResourceManager Resource { get { return Instance._resource; } } // Start is called once before the first execution of Update after the MonoBehaviour is created void Start() { Init(); } // Update is called once per frame void Update() { _input.OnUpdate(); } static void Init() { if (s_instance == null) { // 초기화 GameObject go = GameObject.Find("@Managers"); if(go == null) { go = new GameObject { name = "@Managers" }; go.AddComponent<Managers>(); //? } DontDestroyOnLoad(go); s_instance = go.GetComponent<Managers>(); } } } 아래에는 오류가 뜨는 부분입니다. go.AddComponent<Managers>(); //?
강의를 듣다가 질문이 생겼습니다. 강의에서 나타난 같은 네트워크 내 주소가 앞자리는 모두 같고, 마지막 숫자만 다른데 이때, 같은 네트워크라는 것의 기준이 궁금합니다. PC방이나 회사와 같이 같은 장소에 여러대의 컴퓨터가 있다면 같은 네트워크 인가요? 그러면 이때, 강의 처럼 주소의 앞자리는 같고, 끝 숫자만 다를까요?
루키스님이 말씀하신대로, 서버와 클라이언트의 jwt를 맞춰줘야 합니다. 강의자료에는 서버폴더내 config.json 파일에 secretkey가 없기 때문에 "secretKey": "this is my custom secret key for authentication" 이 줄을 추가해서 넣어주시면 잘 작동되실겁니다. 그리고 게임서버 및 어카운트서버 돌리고 클라 접속하면 잘 됩니다. 개발단계에서만 쓰시고 나중에 키는 다른걸로 바꿔야하겟죠