inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

172만명의 커뮤니티!! 함께 토론해봐요.

몬스터가 공격할때 캐릭터에게 미끄러지는 현상

미해결

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진

안녕하세요 저는 몬스터가 캐릭터를 때릴때 미끄러져서 캐릭터에 딱 붙는 현상이 있어서 그걸 해결 하고 내용을 공유 드릴려고 글을 씁니다. NavMeshAgent 를 쓰시는 분들에 한해서 인데요 https://onecoke.tistory.com/entry/Unity3D-NavMeshAgent-%EB%AF%B8%EB%81%84%EB%9F%AC%EC%A7%90-or-%EC%88%9C%EA%B0%84%EC%9D%B4%EB%8F%99-%ED%98%84%EC%83%81 위 링크 분이 해결하신 분인데 NavMeshAgent 내에 Velocity 값이 존재 해서 velocity 가 zero 가 될때까지 미끄러 진다고 하네요 해결은 MonsterController 에서 UpdataSkill 내에 NavMeshAgent 의 값을 Vector3.zero 로 넣어주니까 몬스터의 미끄러지는 부분이 해결 됐습니다. NavMeshAgent가 문제가 많네요.. 강의 올려주신 Rookiss 선생님 항상 건강하시고 새해 복 많이 받으세요

  • C#
  • unity
sunrise3225 댓글 1 좋아요 0 조회수 150

mydjango.py 질문 있습니다.

미해결

파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트 (장고 4.2 기준)

vscode (windows)사용 기존) mydjango02 폴더--> django 설치 --> startproject --> manage.py 생성 질문 1) mydjango 03 폴더 --> django 설치 --> django runserver가 돌아가지 않습니다. 질문 2) 이전에 따라하기에선 django runserver가 돌아갔었는데 디버그시 mydjango.py가 나타나지 않았습니다. 그래서 실습을 기존에 설치된 manage.py로 했는데 제가 어느 부분에서 실수 할 가능성이 있을까요?

  • react
  • python
  • django
  • web-api
  • htmx
lkh5040 댓글 3 좋아요 0 조회수 186

interlocked 강의

미해결

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버

race condition 문제에서 예시에서 10만번 반복했을 땐 문제가 생기지만 만번 반복했을땐 0 이 나오는 이유는 뭘까요 ?

  • C#
  • unity
  • 네트워크
릴뭐뭐 댓글 1 좋아요 0 조회수 107

hwp 페이지별 분할 저장하는 코드 관련 문의

미해결

직장인에게 꼭 필요한 파이썬-아래아한글 자동화 레시피

일코님, 안녕하세요. 오랜만에 질문 올립니다. 여러 장이 있는 hwp파일의 첫 페이지부터 한 페이지 씩 1.hwp, 2.hwp, 3.hwp, ... 로 저장하는 코드를 작성해 보았는데요. 한 가지 문제점만 빼면 원하는 대로 작동합니다. 한 가지 문제점은, 코드 실행 후 저장된 1.hwp 파일 속에 1페이지가 아닌 전체 페이지가 들어가 있다는 점입니다. 그거 외에 다른 페이지는 문제 없이 작동되고 있습니다. 이거 왜 그럴까요? 코드를 반복해서 살펴봐도, 논리적으로는 저장되는 1.hwp 파일에는 원본파일의 첫 페이지만 들어가 있어야 할 거 같은데.. 그렇게 안되는 이유가 궁금합니다. 전체 코드는 아래와 같습니다. import os from pyhwpx import Hwp hwp = Hwp() target_dir = r"D:\magicfolder" os.chdir(target_dir) hwp.add_tab() hwp.switch_to(0) # 탭0: 카피해 올 원본 파일용 hwp.open("D:\magicfolder\페이지분할대상.hwp") hwp.switch_to(1) # 탭1: 한 페이지씩 붙여서 저장할 일종의 작업공간 hwp.open("D:\magicfolder\페이지분할대상.hwp") hwp.switch_to(0) for j in range(1, hwp.PageCount + 1): hwp.goto_page(j) hwp.CopyPage() hwp.switch_to(1) hwp.HAction.Run("SelectAll") hwp.HAction.Run("Delete") hwp.MoveDocBegin() hwp.PastePage() # 바로 위에서 hwp.PastePage()할 때 페이지가 넘어가서 붙으므로, 앞 페이지로 당겨 붙이기 위해서 맨 위 페이지로 커서 옮기고 Del 2번 해 준 것임. hwp.MoveDocBegin() hwp.HAction.Run("Delete") hwp.HAction.Run("Delete") hwp.save_as(target_dir + "\\" + str(j) + ".hwp") hwp.switch_to(0) hwp.Close() hwp.FileClose() 코드를 많이 짜봐야 늘텐데 정말 오랜만에 시도해 본 거 같습니다. ^^ㅋ

  • python
  • 한컴오피스
  • 레벨업
learner 댓글 0 좋아요 0 조회수 507

안녕하세요, onopen() 문제로 질문드립니다.

미해결

파이썬/장고로 웹채팅 서비스 만들기 (Feat. Channels) - 기본편

똑같이 코딩한거같은데 Uncaught InvalidStateError: Failed to execute 'send' on 'WebSocket': Still in CONNECTING 이런 문제가 생겨 connect()에서 console.log로 this.ws 찍어보니까. readystate가 0에서 바뀌지 않고 onsubmit()에서도 0인걸 확인했습니다. 그래서 웹소켓이 연결되지 않았으니, this.ws.send()에서 걸리는것이라고 생각은하는데, 어디를 고쳐야 될지 모르겠습니다. {# Chat room #} {% extends "chat/base.html" %} {% block extra-style %} <style> .chat-message > div { background-color: #3b3b3b; color: #e1e1e1; border-radius: 0.8em; padding: 0.4em; margin: 0.4em 0; display: inline-block; white-space: pre-wrap; max-width: 80%; word-wrap: break-word; } </style> {% endblock %} {% block content %} <h2>채팅방 :{{ room_name }}</h2> {# 웹소켓으로 실시간 채팅 기능 구현하기 #} <div class="container"> <div class="row"> <div class="col-sm-12"> <div class="card" style="height: 600px;"> <div class="card-header"> 채팅방:{{ room_name }} </div> <div class="card-body overflow-hidden"> <div id="chat_messages" class="w-100 h-100 border-0 overflow-hidden overflow-scroll"></div> </div> <div class="card-footer"> <form id="message_form"> <input type="text" name="message" class="form-control" autofocus autocomplete="off" /> </form> </div> </div> <hr class="my-3" /> <a href="{% url 'chat:index' %}" class="btn btn-primary"> 대기실로 이동 </a> </div> </div> </div> {% endblock %} {% block extra-script %} <script> const handler = { chat_messages_tag: null, ws: null, retry: 0, init(){ console.log("handler.init() 실행됨"); this.chat_messages_tag= document.querySelector("#chat_messages"); document.querySelector("#message_form").addEventListener("submit", this.onsubmit.bind(this)); }, connect(ws_url){ if(this.ws) { this.ws.close(); } this.ws = new WebSocket(ws_url || this.ws?.url); console.log(this.ws, "연결1.") this.ws.onopen = this.onopen.bind(this); this.ws.onclose = this.onclose.bind(this); this.ws.onerror = this.onerror.bind(this); this.ws.onmessage = this.onmessage.bind(this); }, reconnect() { this.connect(); }, onopen(){ console.log("웹소켓 서버와 접속, : Room_chat"); this.retry = 0; }, onclose(event){ if (!event.wasClean) { console.error("웹소켓이 죽었거나, 네트워크 에러"); if (this.retry < 3) { this.retry++; setTimeout(() => { this.reconnect(); console.log(`[${this.retry}] 접속 재시도 ...`); }, 1000 * this.retry) } else { console.log("웹소켓 서버에 접속할수 없습니다. 메인페이지로 이동합니다."); window.location.href = "{% url 'chat:index' %}"; } } }, onerror(){ console.log("웹소켓 에러 발생. 메인페이지로 이동합니다."); window.location.href = "{% url 'chat:index' %}" ; }, onmessage(event){ const message_json = event.data; console.log("메세지 수신 :", message_json); const { type, message } = JSON.parse(message_json); switch (type){ case "chat.message": this.append_message(message); break; default: console.error('Invalid message type: &{type}'); } }, append_message(message){//인자로 받은 채팅 메세지 로그에 추가 const element = document.createElement("div"); element.className = "chat-message"; const wrapper = document.createElement("div"); wrapper.textContent = message; element.appendChild(wrapper); this.chat_messages_tag.appendChild(element); this.chat_messages_tag.scrollTop = this.chat_messages_tag.scrollHeight; }, onsubmit(event){ //입력된 채팅 메세지 문자열을 획득하고, 메세지 로그에 추가. event.preventDefault(); const form_data = new FormData(event.target); //폼필드의 값을 오브젝트로 변환하여 props로 저장하고, 폼필드는 리셋합니다. const props = Object.fromEntries(form_data); event.target.reset(); // reset form const { message } = props; console.log("웹소켓으로 전송할 메세지: ", message); console.log(this.ws, "onsubmit"); {#this.append_message(message);#} this.ws.send(JSON.stringify({ type: "chat.message", message: message, })) } }; handler.init(); const protocol = location.protocol === 'https:' ? 'ws:' : 'wss:'; const ws_url = protocol + "//" + location.host + "/ws" + location.pathname; handler.connect(ws_url); </script> {% endblock %} from django.urls import path from chat import consumers websocket_urlpatterns = [ path("ws/chat/<str:room_name>/chat/", consumers.ChatConsumer.as_asgi()), ] import os from channels.routing import ProtocolTypeRouter, URLRouter from django.core.asgi import get_asgi_application import app.routing import chat.routing os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'mysite.settings') django_asgi_app = get_asgi_application() application = ProtocolTypeRouter({ "http" : django_asgi_app, "websocket" : URLRouter( chat.routing.websocket_urlpatterns + app.routing.websocket_urlpatterns, ) }) from django.shortcuts import render # Create your views here. def index(request): return render(request, "chat/index.html") def room_chat(request, room_name): return render(request, "chat/room_chat.html",{ "room_name": room_name, })

  • python
  • django
  • django-channels
sunnnwo 댓글 2 좋아요 0 조회수 171

character movement 반응속도

해결됨

[Unity6] 나만의 서바이벌 게임 만들기

move에 대한 animator 작업도 진행하고 코드작업도 진행을 했는데요. 처음 게임 시작누르고 방향키를 한 2~3초눌러야 run상태로 가더라고요. idle상태는 그거보단 빠른 1초정도? 어떤게 문제일까요.. condition에서 스피드에 대한 값도 지정해서 0.1 0.01까지 낮춰보았고, setting에서 exit time과 transition duration까지 낮춰보면서 해봤는데 안되네요. 음 좀 보는데 idle에서 모션변환까지 duration이 좀 걸리는거같은데요.. void Move() { // key 방향 float horizontal = Input.GetAxis("Horizontal"); float vertical = Input.GetAxis("Vertical"); Vector3 cameraForward = Camera.main.transform.forward; Vector3 cameraRight = Camera.main.transform.right; cameraForward.y = 0.0f; cameraRight.y = 0.0f; cameraForward.Normalize(); cameraRight.Normalize(); Vector3 moveDirection = cameraRight * horizontal + cameraForward * vertical; // mobile, pc 속도 차이 줄이기위해 controller.Move(moveDirection * moveSpeed * Time.deltaTime); // moveDirection.magnitude를 좀 더 빠르게 반영하도록 float currentSpeed = moveDirection.magnitude * moveSpeed; animator.SetFloat("a_Speed", currentSpeed); }

  • C#
  • unity
Tae In Kim 댓글 2 좋아요 0 조회수 164

몬스터와 캐릭터가 닿았을때 밀리는 현상

미해결

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진

안녕하세요 선생님 강좌 너무 잘 듣고 있습니다. 다름이 아니라 13:40초에 캐릭터와 몬스터가 서로 충돌해서 밀리는 현상을 설명 해주신대로 NavMeshAgent 를 삭제하고 일반적인 이동 방식으로 수정해서 잘 사용하고 있습니다. 근데 혹시 NavMeshAgent 를 나는 꼭 써서 해야돼 라고 생각 하시는 분들은 구글을 찾아 봤는데 NavMeshAgent nma = gameObject.GetOrAddComponent<NavMeshAgent>(); // nma 로 NavMeshAgent 를 불러와서 nma.obstacleAvoidanceType = ObstacleAvoidanceType.NoObstacleAvoidance; // obstacleAvoidanceType 을 NoObstacleAvoiddance 로 교체를 해주면 네브메쉬를 가지고 있어도 서로 충돌하지는 않는거 같습니다. 혹시 저처럼 궁금한 분들이 있을까봐 남깁니다. 선생님 날씨가 추운데 감기 조심하시고 강의 더 집중해서 듣겠습니다.

  • C#
  • unity
sunrise3225 댓글 1 좋아요 1 조회수 233

[Title씬 구성 관련 질문 : 프리팹]

해결됨

유니티 시스템 프로그래밍 Pt.1 - 상용 게임 구현을 위한 핵심 시스템 올인원 패키지

Title 씬 프리팹 관련 질문이 있습니다. Q1. 타이틀 프리팹에 별도의 UI만 보여주는 카메라를 만든 이유가 무엇인가요? (main 카메라가 아닌 별도의 카메라를 만들고 또 그것을 프리팹에 넣은 이유) Q2. Title의 경우 프리팹에 캔버스까지 있습니다. 궁금한 것은 InGame에서 각각 UI들도 프리팹으로 만들텐데, 다 이렇게 개별 UI 프리팹마다 캔버스를 만드는 것이 좋은가요? (프리팹 안에 캔버스를 넣는 이유와, 주의해야 할 사항) * ) 제가 예전에 작업을 할 때, 큰 UI 캔버스 만들고 하위로 캔버스를 가진 UI프리팹들을 넣으니까, 가끔 프리팹 창에서 수정할 때 UI들이 화면에 보이지 않았던 경험이 있어서 질문드립니다! 좋은 강의 감사합니다 🙂 남은 강의도 잘 챙겨 보겠습니다!

  • C#
  • unity
  • 객체지향
Kyuarez 댓글 2 좋아요 0 조회수 222

코드 결과값이 좀 다릅니다.

미해결

입문자를 위한 LangChain 기초 — v1.0+ 업데이트

멀티체인 부분에서 chain1의 답변이.. 길게 나옵니다. 한 단어로 'future'라는 답변이 나와야 사실 chain2에 english_word라는 변수에 알맞는 값이 들어가는 걸텐데요. 문장으로 답이 나와서 이상한 상황입니다. 무슨 문제가 있어서 이렇게 invoke 결과값이 달라지는지 제가 뭘잘못했는지 모르겠습니다. 제 잘못이 아니라면 이게 무엇 때문인지, 어떻게 해결할 수 있을지 궁금합니다. (chain2도 답변을 영어로 하는 문제도 있습니다.)

  • python
  • llm
  • langchain
  • openai-api
김재형 댓글 2 좋아요 0 조회수 208

섹션2 ["환경 vs. 설정 vs. 구성"] 강의 자막 문의

해결됨

실리콘밸리 엔지니어가 가르치는 파이썬 기초부터 고급까지

질문은 많으시면 많을수록 좋습니다. 가능한 빠른 답변 드리겠습니다. 원활한 답변을 위해, 자세한 질문 사항 부탁드려요 😋 [33초] 각 단어에 맞는 영어 번역이 잘못된 것 같습니다. 환경 / 구성 / 설정 Environment / Configuration / Setting 로 이해하면 될까요?

  • python
  • 알고리즘
티읕이응 댓글 1 좋아요 0 조회수 160

IDamagable 활용

해결됨

절대강좌! 유니티 6 - TPS 게임으로 배우는 유니티 마스터클래스

인터페이스를 활용한 피격 데미지 구현 강좌를 보면 총알의 HIT를 Collision 기반에서 Raycast 기반으로 변경하고 있습니다. Raycast를 사용하는 장점은 무엇인가요? 현업에서도 FPS/TPS를 제작할 때 Collision보다는 Raycast를 더 많이 사용하나요?

  • C#
  • unity
rednine 댓글 1 좋아요 0 조회수 185

페이지가 넘어갈 때 url 변하지 않는 경우

미해결

[리뉴얼] 파이썬입문과 크롤링기초 부트캠프 [파이썬, 웹, 데이터 이해 기본까지] (업데이트)

안녕하세요 제공해주신 깃허브 홈페이지 url의 경우는 페이지가 넘어갈 때마다 'url/page{page_num}' 형식으로 변하게 되는데 제가 살펴본 네이버 카페의 경우(링크 아래 첨부)는 페이지 수를 넘겨도 페이지 수가 변하지 않았습니다. 네이버 카페 url: https://cafe.naver.com/cantsb 혹시 이러한 경우 페이지 수에 따른 크롤링을 어떻게 하는지 궁금합니다.

  • python
  • 웹-크롤링
fwm8 댓글 1 좋아요 0 조회수 293

YOLO 학습

미해결

[개정판] 딥러닝 컴퓨터 비전 완벽 가이드

안녕하세요 강사님 최근에 YOLO를 이용해 이것 저것 연습을 하는데 궁금한 점이 있습니다. 데이터셋의 크기가 너무 커서(2TB) 일단 필요한 부분만 선택해서 학습을 했습니다. 그런데 이렇게 하면 새로운 데이터셋을 추가해서 학습을 시키려면 <기존 1TB + 새로운 데이터셋> 이렇게 합친 데이터셋을 다시 학습을 해야 하나요...? 예를 들어 a, b, c, d를 탐지할 수 있게 학습을 하고 추가적으로 ㄱ, ㄴ, ㄷ, ㄹ도 탐지할 수 있게 데이터를 추가해서 총 a, b, c, d, ㄱ, ㄴ, ㄷ, ㄹ을 모두 탐지할 수 있도록... 마지막 출력 계층만 새롭게 학습을 하는 방법은 기존 데이터셋에 대한 성능이 떨어질 수 있어 좋은 선택은 아닌가요...?

  • python
  • 머신러닝
  • 딥러닝
  • keras
  • tensorflow
  • 컴퓨터-비전
장태훈 댓글 2 좋아요 0 조회수 229

새로운 dict를 생성한 이유에 대해서 궁금합니다.

미해결

프로그래밍 시작하기 : 도전! 45가지 파이썬 기초 문법 실습 (Inflearn Original)

d = {'USA': 36, 'Germany': 17,'France':32, 'Australia': 77, 'South Africa': 99, 'India': 108, 'South Korea': 200, 'South Japan':300} print(d.get("France")) t = input("You won't search of contury?").title() print(t,"<<입력값") def add_space(a): if 'South' in a: print(a.find('South')) i = a.find('South') # print(a[i:i+5]) a = a[i:i+5]+' '+a[i+5:len(a)].title() return a # if 'East' in a: # --- # if 'Wset' in a: # --- # if 'North' in a: # --- t = add_space(t) if t == "Usa": t = "USA" else: print(a) country = d.get(t) if not country: print('No results were found for your search.') else: print(country) 안녕하세요 강의 수강 중 궁금한 점이 있어서 질문드립니다. 강의 7:33에서 key가 소문자인 형태로 새로운 dict을 생성하신 이유가 궁금합니다. 문제 해결을 위한 생성 이외에 원본 변수인 'd'의 수정을 방지하기 위함과 지금 예제는 눈으로 모든 값을 확인할 수 있지만 많은 데이터를 가진 시퀀스의 경우에는 어떠한 예외가 발생할지 모르니 그에 대한 대비 제가 생각해 본 이유가 맞는지 또한 다른 이유가 있으신지 궁금합니다. 또한 제 코드에서 'add_space'함수를 매번 실행하는 게 비효율적이라는 생각이 들지만 필요하다고도 생각돼서 선생님의 의견을 여쭤봅니다.

  • python
kingryan9996 댓글 2 좋아요 0 조회수 203

seaborn 라이브러리 호출하였으나 그래프가 안 그려져요

미해결

공공데이터로 파이썬 데이터 분석 시작하기

안녕하세요! 교육 차근차근 따라하면 듣고 있는데요.. seaborn 시각화 생성되지 않아 문의 드립니다. 제가 놓친 것이 있을지요.. 아래 코드 참고 부탁 드려요

  • python
  • pandas
  • numpy
jieunk 댓글 2 좋아요 0 조회수 343

닉네임 텍스트에 이름 기입은

해결됨

책 3권을 영상으로 만든 Unity 게임 개발

'유저 정보 나타내기' 강의 중 {NickName}을 실행시키니 '김철수'가 나오는데 이건 어떻게 하신건가요?? 영상에는 편집되어 바로 김철수가 떠서 어떻게 하는지 궁금하네요

  • C#
  • unity
SeongBaek CHO 댓글 1 좋아요 1 조회수 158

갑자기 데이터 프레임이 되는 이유

미해결

[개정판] 파이썬 머신러닝 완벽 가이드

기존 14:20초 부근에서 titanic_df['Pclass'].value_counts().reset_index() 를 실행했을때 출력되는 모양(그냥 텍스트 형태)로 나오는 것과 15:18 부근 코드는 같은데 테이블 형태로 나오는 것의 차이는 무엇인가요?

  • python
  • 머신러닝
  • 통계
능함가 댓글 2 좋아요 0 조회수 151

[Unique Paths] 완전탐색 / DP (후반부)

해결됨

코딩테스트 [ ALL IN ONE ]

[Unique Paths] 완전탐색 / DP (후반부) 강의에서 13분에서 질문있습니다. 첫 번째 행과 첫 번째 열이 모두 왜 1 인가요? 만약 방향을 바꾸기 전까지 1이라고 친다면, 아래 그림 처럼 도착지에서 최대 방법이 28이 아니라 8이 되어야 하는거 아닌가요? 왜냐면 방향은 오른쪽 아래로만 이동이 가능하다고 해서 올라가거나 왼쪽은 이동이 불가능하잖아요.

  • python
  • 코딩-테스트
  • 알고리즘
zzzzz 댓글 1 좋아요 0 조회수 123

쿼드트리 옥트리가 활용되는 예시에 대하여 더 여쭤보고싶습니다.

해결됨

이득우의 꼭 배워야하는 게임 알고리즘

3D던전 로그라이크 게임을 개발중인 초보 개발자입니다. PCG알고리즘에 부족한 점이 있는 것 같아 수강 하였습니다. 활용된 예시로는 2D플랫포머, 탄막게임에서의 최적화 부분과 3D게임에서 LOD로 부분 렌더링하는것 까지는 이해하였는데 활용된 다른 예시들이 궁금합니다.

  • unity
  • 알고리즘
고우진 댓글 1 좋아요 0 조회수 263

인기 태그

인프런 TOP Writers

주간 인기글