안녕하세요! object value = 3.14; string result = value as string; // warning CS8600: Converting null literal or possible null value to non-nullable type. int result2 = value as int; // error CS0077: The as operator must be used with a reference type or nullable type ('int' is a non-nullable value type) int result3 = value as int?; // error CS0266: Cannot implicitly convert type 'int?' to 'int'. An explicit conversion exists (are you missing a cast?) // warning CS8629: Nullable value type may be null. int? result4 = value as int; // error CS0077: The as operator must be used with a reference type or nullable type ('int' is a non-nullable value type) 위 코드처럼 string 의 경우 ? 를 안붙이면 warning 만 발생하고 코드가 실행되는데, int 나 float 등의 경우 error 가 발생합니다. 혹시 이 둘의 차이를 알 수 있을까요? ps. 이 다음 강의인 Convert Class를 듣고 Convert.ToInt32()를 사용하니 아무런 에러 발생 없이 실행되네요. 명시적으로 변환을 지정해서 그런걸까요? object value = 3.14; int result = Convert.ToInt32(value);
코드 오류없이 작성했는데, 공격버튼이 적용이 되지 않습니다. 코드는 동영상이랑 몇번을 비교해서봤지만 잘못된 부분이 보이지 않기 때문에 오류없이 작성했다고 생각합니다. 버튼 이벤트 영역에 함수연결 설정도 해줬습니다. 그런데 실행을 해보면 공격버튼이 적용이 되지 않습니다. 버튼을 누르면 pause에 걸린것처럼 일시정지된 상태로 진행이 안됩니다... 씬 종료버튼이나 에디터의 X 버튼을 눌러도 반응이 없고, 작업관리자에서 유니티를 종료시켜줘야 합니다. 다른분의 질문중에도 비슷한 내용이 있고, 답변의 내용을 보면 전체프로젝트를 올려줄테니 코드를 비교 확인해보라고 답변을 달아주신걸 확인해서 올려놓으신 파일을 다운 받아봤는데 (파일명 kfantasy10.gz ) , 압축을 플어보면 유니티 프로젝트 형태(Assetk projectsetting, package, )로 있는게 아니라 이름모를 폴더만 수십개 있고, 그 폴더내용안에를 확인해봐도 스크립트 파일은 없고 이미지 파일밖에 없어서 코드를 비교해서 볼 수도 없습니다. .gz이 확장자는 잘 몰라서 확인해보니 7.zip이나, 리눅스에서 열수 있다고 해서 7zip도 사용해보고 git을 사용해서도 압축을 풀어봤는데 역시 동일하게 이미지파일만 있는 파일만 나옵니다. 가능하시면 전체프로젝트 파일을 zip 파일 형태로 다시 올려주셨으면 합니다.
class Pokemon { protected string sound = "크아아왕"; protected void Sound() { Console.WriteLine($"{sound}"); } } class Pikachu : Pokemon { public Pikachu() : base {} protected void Sound() { sound = "피카 피카~~!"; Console.WriteLine($"{sound}"); } } 이렇게 해서 Pikachu의 인스턴스를 만들어 Sound 함수를 사용하면 "피카 피카~~!" 가 잘 출력되는 것을 확인했습니다. 제가 궁금한건 Pikachu 파생 클래스에서 sound 변수를 Sound() 함수 안이 아니라 밖에서 값을 초기화 할 때 왜 에러가 뜨는지 궁금합니다. 그리고 이렇게 함수가 아닌 밖에서 초기화해서 사용할 수 있는 방법은 무엇이 있는지 궁금합니다. class Pikachu : Pokemon { sound = "피카 피카~~!"; public Pikachu() : base {} protected void Sound() { Console.WriteLine($"{sound}"); } } 감사합니다!!
안녕하세요 🙂 확장 함수 부분 설명해 주실 때 매개변수로 this string text 를 쓰셨는데, this 가 왜 입력 되었는지 궁금합니다. 앞선 강의에서 setter 할 때 this 키워드가 클래스의 멤버임을 증명하는데 쓰이는 것 같은데, 여기서도 단순 그런 역할 인지요?
SetDamage부분에서 계소 null이 나는데요. 어떤 부분을 확인해야 할까요? NullReferenceException: Object reference not set to an instance of an object Hero.SetDamage () (at Assets/02.Scripts/Player/Hero.cs:170) Bullet.Update () (at Assets/02.Scripts/Player/Bullet.cs:34)
아무리 강의를 돌려봐도 강의영상 3:17에는 위와 같은 느낌이었는데 강의영상 4:31 영상 렌더 텍스쳐 적용 후부터 이미지가 써클의 모양이랑 크기가 달라 보이는게 이해가 안됩니다... 부모 오브젝트부터 초 단위로 끊어서 봤었는데 보여지는 써클 사이즈가 도저히 이해가 안됩니다.
[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part7: MMO 컨텐츠 구현 (Unity + C# 서버 연동 기초)
안녕하세요 루키스님.. 강의 잘 보고 있습니다.. ㅠ m2 프로젝트 강의 거의 다 듣고 저만의 rpg를 만들기 위해 m2 프로젝트의 프레임워크만을 사용하고 3d isometric view로 리니지 같은 게임을 만드는 도중에 도저히 답이 안나와서 c#과 유니티로 만드는 mmorpg 강의 들을 때 만들어둔 프로젝트에 저만의 프레임워크를 수정 및 추가하는 방법으로 강의를 듣고 있습니다. 현재 저의 프로젝트는 강의처럼 2d가 아닌 3d로 구성되어 있고 movepacket에 vector3 형식의 posinfo를 넘겨주고 있습니다. 근데 동기화 테스트를 하면 나 자신의 캐릭터는 잘 움직이는데 반대편 클라이언트에서는 제 캐릭터가 움직이는게 보이지 않아서 디버깅만 5시간째 하고 있는데 도저히 감이 안와서 도움 요청드리려고 합니다.. 프로젝트좀 봐주시면 안될까요? 서버 코드는 혹시나 싶어서 루키스님의 코드 전체를 붙여넣기 해서 다시 빌드까지 해봤지만 똑같네요.. 참고로 명령프롬프트에 c_move 좌표는 정상적으로 잘 찍힙니다.
bfs는 최단거리를 어떻게 찾는건지 이해가 안되서 질문 남깁니다. 그니까 여러 갈래의 길을 부모-자식의 관계로 뻗어나가면서 찾다가, 도착점에 도달하는 부모자식 관계가 있으면, 부모를 타고 올라가면서 확인 한 다음에 reverse를 시켜서 다시 부모에서 자식으로 내려간다고 이해하면 될까요
안녕하세요 몬스터AI를 디테일하게 제작하다 의문이 들어서 질문드립니다. 다른 상용화된 3D 게임에서 보면 몬스터가 플레이어에게 접근할 때 앞에 다른 몬스터들이 있으면 그를 무시하지 않고 피해서 돌아서 가는데요 이것은 raycast를 여러방향으로 쏴서 주변 몬스터를 체크해 피해가도록 구현을 하는 걸까요? 아니면 다른 방식이 있을까요? 아니면 그냥 겹쳐도 상관없이 구현하는 경우도 있다고 하는데 기획에 따라서 다르겠지만 요즘은 어떤식으로 구현할까요??
질문은 아니고 Unity6에서 DoTweend 과 UniTask를 같이 사용시 'TweenerCore<float, float, FloatOptions>' does not contain a definition for 'ToUniTask' and the best extension method overload 'CancellationTokenExtensions.ToUniTask(CancellationToken)' requires a receiver of type 'CancellationToken' 같은 에러 메세지를 만나게 됩니다. DOTween의 Tween 객체를 직접 await 할 수 없기 때문에 발생하는 문제라고 합니다. 이 문제를 해결하기 위해서는 DOTween의 Tween을 UniTask로 변환해주는 확장 메서드를 사용해야 합니다. ToUniTask() 확장 메서드를 사용하면 된다고 합니다. 예시로 다음과 같이 하면 됩니다. 우선 Edit > Project Settings 에서 Scripting Define Symbols에 다음과 같은 같은 문구를 추가 합니다. "UNITASK_DOTWEEN_SUPPORT" 테스트 해본 바로는 위에 문구 추가까지만 해도 에러는 사라지는거 같습니다. 그래도 확실히 하기 위해 아래와 같이 UniTask 안에서 트윈 호출시 알래와 같이 작성 합니다. //에러가 나는 트윈 호출 위치애서 DOTween 메서드 호출 뒤에 .ToUniTask() await image.DOColor(Color.red, 0.5f).ToUniTask();
InvalidOperationException: A component of type 'Radzen.Blazor.RadzenTheme' has render mode 'InteractiveAutoRenderMode', but the required endpoints are not mapped on the server. When calling 'MapRazorComponents', add a call to 'AddInteractiveWebAssemblyRenderMode'. For example, 'builder.MapRazorComponents<...>.AddInteractiveWebAssemblyRenderMode()' Microsoft.AspNetCore.Components.Endpoints.SSRRenderModeBoundary.AssertRenderModeIsConfigured<TRequiredMode>(Type componentType, IComponentRenderMode specifiedMode, IComponentRenderMode[] configuredModes, string expectedCall) 서비스 등록함 테마 등록함 컨포넌트 입력