묻고 답해요
156만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결유니티와 C#으로 배우는 카타나제로스타일 게임만들기 (기본편)
공격후에 미끄러지는 오류
공격이펙트 마무리 강의를 마쳤는데, 공격시 바라보는 방향으로 힘이 주어져서 더 빨리 이동하는데, 딱 딱 대시하고 멈추지가않고, 스르륵 미끄러집니다. 무엇이 문제일까요?using System.Collections;using System.Collections.Generic;using System.IO;using UnityEditor;using UnityEngine;using UnityEngine.UIElements;public class Player : MonoBehaviour{ public float speed = 5; public float jumpUp = 1; public float power = 5; public Vector3 direction; //방향을 위한 Vector3형 변수 public GameObject slash; Animator pAnimator; //애니메이션 관리를 위함 Rigidbody2D pRig2D; //물리효과처리 + SpriteRenderer sp; void Start() { pAnimator = GetComponent<Animator>(); pRig2D = GetComponent<Rigidbody2D>(); direction = Vector2.zero; sp = GetComponent<SpriteRenderer>(); } void KeyInput() { direction.x = Input.GetAxisRaw("Horizontal"); if (direction.x < 0) { //left sp.flipX = true; pAnimator.SetBool("Run", true); } else if (direction.x > 0) { //right sp.flipX = false; pAnimator.SetBool("Run", true); } else if (direction.x == 0) { pAnimator.SetBool("Run", false); } if (Input.GetMouseButtonDown(0)) { pAnimator.SetTrigger("Attack"); } } void Update() { //클래스 사용 KeyInput(); Move(); if (Input.GetKeyDown(KeyCode.W))//W키 눌렀을때 { if (pAnimator.GetBool("Jump") == false) { Jump(); pAnimator.SetBool("Jump", true); } } } private void FixedUpdate() { Debug.DrawRay(pRig2D.position, Vector3.down, new Color(0, 1, 0)); RaycastHit2D rayHit = Physics2D.Raycast(pRig2D.position, Vector3.down, 1, LayerMask.GetMask("Ground")); if (pRig2D.velocity.y < 0) { if (rayHit.collider != null) { if (rayHit.distance < 0.7f) { pAnimator.SetBool("Jump", false); } } } } //움직임 함수 public void Move() { transform.position += direction speed Time.deltaTime; } public void AttSlash() { //플레이어 오른쪽 if (sp.flipX == false) { pRig2D.AddForce(Vector2.right * power, ForceMode2D.Impulse); GameObject go = Instantiate(slash, transform.position, Quaternion.identity); go.GetComponent<SpriteRenderer>().flipX = sp.flipX; } else //왼쪽 { pRig2D.AddForce(Vector2.left * power, ForceMode2D.Impulse); GameObject go = Instantiate(slash, transform.position, Quaternion.identity); go.GetComponent<SpriteRenderer>().flipX = sp.flipX; } } //점프 함수 public void Jump() { //벡터값 제로 pRig2D.velocity = Vector2.zero; //제로로 해줘야 이전에 있던 값(힘)이 사라진다? //위로 힘 가해주기 pRig2D.AddForce(new Vector2(0, jumpUp), ForceMode2D.Impulse); } }
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
에셋 다운은 어디서하나요??
다른 질문에도 있던데 구름모양이 도대체 어디 있는건가요?? 정확한 위치를 알려주세요 어디에 구름이 있는거죠???
-
미해결[켠김에 출시까지] 유니티 방치형 키우기 게임 (M1 + C1)
JWT의 유효기간에 대해서 질문이 있습니다.
방치형 게임의 경우 JWT의 유효기간을 어떻게 설정해야하는지가 궁금합니다. 방치형 게임은 특성상 유저가 AFK를 해두는경우가 많은걸로 알고있습니다.제가 이해한바로는 게임을 오래동안 켜놓아도 JWT의 유효기간이 지나버리면 다시 재로그인을 해서 JWT를 발급받아야하는것으로 이해했습니다.유효기간을 되도록이면 짧게하는게 보안적인 부분에서 이득이라고 생각되는데 이를 해결할 방법이 있을지 혹은 적절한 유효기간이 있는지가 궁금합니다.
-
해결됨비전공자도 쉽게 시작하는 증강현실(AR)로 나만의 고양이 만들기
이미지 파일
안녕하세요 강의 듣고있는데 늑대 사진은 어디서 다운로드 받나요?
-
해결됨두고두고 써먹는 유니티 VR
섹션4 2-2 수업자료가 이상합니다.
안녕하세요! 섹션4 2-2 에 수업자료를 버튼을 눌러 다운로드 받으면 unitypakage 파일이 아니라 gz 압축 파일이 다운로드 됩니다. gz 파일의 압축을 풀면 이상한 풀더가 많이 나옵니다. 파일 확인 부탁드립니다.
-
해결됨두고두고 써먹는 유니티 VR
빌드파일 VR연결
에디터상에서는 VR이 잘 연결됩니다. 그런데 안드로이드로 빌드해서 apk로 Meta Quest Developer Hub에서 실행하면검정화면에서 꺼져버립니다.그리고 윈도우로 빌드하면 실행은 되는데 VR연결이 되지 않습니다.에디터 버전이 2022.3.29f1인데 에디터 버전 문제일까요?
-
미해결[켠김에 출시까지] 유니티 캐주얼 모바일 MMORPG (M2)
수강생은 디스코드 강좌도 참여 가능한가요?
궁금합니다!
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
SendBufferHelper를 굳이 만들어야 하는 이유가 뭔가요?
먼저 수준 낮은 질문 죄송합니다..SendBufferHelper클래스의 내용 전부를 SendBuffer클래스에 넣을 수 있을 거 같고, 넣으면 사실상 SendBufferHelper클래스는 필요 없을 거 같다는 생각을 했습니다. 제가 뭔가 빠뜨린 것이 있는지 궁금합니다. SendBufferHelper클래스의 ThreadLcoal에서 new ThreadLocal<SendBuffer>(() => { return null;}); 사용하셨는데 여기서 람다식은 생성자 인가요? 이것도 사실 필요 없다고 생각했는데 이것은 어디에 사용되나요?
-
미해결유니티(Unity)로 시작하는 게임개발: Part 3. 슈팅게임 개발
Asteroid 생성에 관련해서
안녕하세요다름이 아니라 GameManager 를 생성하여 GameManager 스크립트에 Asteroid01 을 추가해서영상에서 설명 해주신데로 코드를 작성한 후에 실행을 하면Asteroid 가 굉장히 많은 수가 랜덤으로 생성되어 나옵니다혹시 문제가 무엇일까요?
-
미해결[켠김에 출시까지] 유니티 방치형 키우기 게임 (M1 + C1)
유니티 게임 개발 첫 발걸음을 이 강의와 함께하겠습니다
좋은 강의 제공해주셔서 감사합니다.1주차의 UI까지밖에 안해봤지만 상당히 즐겁게 따라가고 있는데요.주차별 강의를 따라가고 나서 각 코드들이나 시스템의 흐름을 파악하면서 강의를 따라가면 될까요?? 이런 질문을 드리기에 좀 쑥스럽지만.. 알려주시면 이정표 삼아 열심히 해보겠습니다.감사합니다!
-
미해결유니티 강좌 [쯔꾸르풍 게임 제작하기]
맵이 어두워지는 현상
Tiled2unity는 현재 지원을 안한다고 해서 SuperTiled2unity 로 tiled을 갖고왔는데 계속 맵이 어두워진 채로 가져와지는데 이런 현상을 어떻게 하면 고칠 수 있을까요?
-
해결됨[유니티 레벨 업!] 모듈식으로 개발하는 퀘스트&업적 시스템
강의에서 리워드 관련 언급은 없으셔서 질문드립니다.
아직 유니티와 C#을 다루는데 초기단계라서 강의는 다 수강하고 개인 프로젝트에 적용했는데 강의 내용에 없는 리워드 관련 작업이 능동적으로 만들기가 힘드네요. 혹시 리워드 스크립트에 존재하는 Give() 메소드 안에 보상 아이템 갯수를 늘려준다거나 하는 코드를 작성해놓으면 되는건가요??
-
미해결[유니티 레벨 업!] 모듈식으로 개발하는 스킬 시스템
Subclass Selector Odin inspector 사용 관련
안녕하세요 저는 현재 Odin inspector를 에셋스토어에서 구매하여 쓰고 있습니다. 강의에서 subclassSelector를 odin 내장 기능으로 쓸 수 있다고 하셨는데 어떤 네임스페이스를 써야 사용이 가능한지 여쭤봐도 될까요? 번역기 돌려가며 열심히 찾아보고 매뉴얼 봐도 모르겠네요 ㅠㅠ
-
미해결SignalR + ASP.NET Core [+MAUI +WPF +JWT]
unity에서는 signalR을 사용 할 수 있는 방법이 있을까요?
혹시 unity에서는 signalR을 사용 할 수 있는 방법이 있을까요?unity에 maui를 붙이는 건 힘들 거 같습니다.
-
미해결유니티 AR로 만드는 FPS 게임
indicator image
indicator image 가 없는 것 같습니다.
-
미해결[유니티 레벨 업!] 모듈식으로 개발하는 스킬 시스템
Category[] 직렬화
[SerializeField] 를 통해 IdentifiedObject에서 Category를 직렬화해주고 있는데요.직렬화를 위해서는 다시 Category의 부모인 IdentifiedObject의 직렬화 가능한 멤버변수를 알아야 하는데 그렇다면이론상 재귀 호출이 무한히 일어날 것 같은데 잘 작동이 되는 이유가 궁금합니다.
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
패킷 관련 질문이 있습니다!
패킷 보내시는 부분을 보고 있는데 쪼개서 보낼 때 결국엔 그 정해진 길이에 맞춰서 여러번 보내게 될텐데(예시: 1024 바이트를 최대로 하여 보냄)그렇게 되면 데이터가 채워져있는 부분을 제외하고 나머지는 0 바이트로 채워져서 보내지는걸로 알고 있습니다.근데 이게 가끔씩은 패킷에서의 데이터 자체가 0 바이트인 경우도 있을거같은데 이런 경우는 어떻게 판별해주는 방법이 따로 존재할까요?
-
해결됨[유니티 레벨 업!] 모듈식으로 개발하는 스킬 시스템
Time Sync 문제 관련 질문
Time Sync 문제로 인해 currentApplyCycle를 0으로 초기화 할 것이 아니라 오차 값(영상에서는 0.0012)으로 초기화 해야 된다는 설명 잘 들었습니다! 여기서, currentApplyCycle %= ApplyCycle; 로 초기화를 하는 부분에서, currentApplyCycle 변수의 경우, public float CurrentApplyCycle{ get => currentApplyCycle; set => currentApplyCycle = Mathf.Clamp(value, 0f, ApplyCycle);}위 코드의 Mathf.Clamp 함수로 인해 값이 0 ~ ApplyCycle(0.5) 사이에 머물게 되는데 이러면 0.5012 값이 0.5로 조정되어서 결국에는 0.5 % 0.5가 되어 0이라는 값으로 초기화 되는 게 아닌가 하여 질문합니다!
-
미해결[유니티 레벨 업!] 모듈식으로 개발하는 스킬 시스템
멀티 게임에서의 State Machine에 대해서 궁금한 점있습니다.
멀티 게임에서 StateMachine을 사용한다면 모든 컴퓨터에서 현재 State가 같도록 통일해 주는 작업하여 State의 흐름을 공유하나요?아니면 한 컴퓨터에서만 State를 다루고 다른 컴퓨터들에게는 따로 State를 통일하지 않고 그때 그때 필요한 작업들의 처리만 요청하나요?멀티 게임에서 StateMachine이 일반적으로 어떻게 사용되는지 궁금해서 질문드립니다.
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part7: MMO 컨텐츠 구현 (Unity + C# 서버 연동 기초)
PushAfter 사용 질문
JonTimer 강의에서 학습한 PushAfter에 관한 질문 Arrow 실습 코드에 적용해 보았는데 제가 이해한 것이 맞는 지 궁금하여 질문 드립니다. GameRoom 클래스 코드 일부// 누군가가 주기적으로 호출해줘야 한다 public void Update() { foreach (Monster monster in _monsters.Values) { monster.Update(); } //foreach (Projectile projectile in _projectiles.Values) //{ // projectile.Update(); //} Flush(); }Arrow arrow = ObjectManager.Instance.Add<Arrow>(); if (arrow == null) return; arrow.Owner = player; arrow.Data = skillData; arrow.PosInfo.State = CreatureState.Moving; arrow.PosInfo.MoveDir = player.PosInfo.MoveDir; arrow.PosInfo.PosX = player.PosInfo.PosX; arrow.PosInfo.PosY = player.PosInfo.PosY; arrow.Speed = skillData.projectile.speed; Push(EnterGame, arrow); arrow.Test();Arrow 클래스 코드 일부bool check; public void Test() { // TODO : Room is null while (!check) { Update(); } } //long _nextMoveTick = 0; public override void Update() { if (Data == null || Data.projectile == null || Owner == null || Room == null) { return; } check = true; //if (_nextMoveTick >= Environment.TickCount64) // return; //long tick = (long)(1000 / Data.projectile.speed); //_nextMoveTick = Environment.TickCount64 + tick; Vector2Int destPos = GetFrontCellPos(); if (Room.Map.CanGo(destPos)) { CellPos = destPos; S_Move movePacket = new S_Move(); movePacket.ObjectId = Id; movePacket.PosInfo = PosInfo; Room.Broadcast(movePacket); Console.WriteLine("Move Arrow"); } else { GameObject target = Room.Map.Find(destPos); if (target != null) { target.OnDamaged(this, Data.damage + Owner.Stat.Attack); } // 소멸 Room.Push(Room.LeaveGame, Id); } Room.PushAfter((int)(1000 / Data.projectile.speed), Update); }GameRoom 클래스에서 Update를 계속 실행하는 것이 아니라 Arrow를 EnterGame한 후 Test를 한 번만 실행시키면 되는 거 맞을까요?