유니티 안드로이드 질문입니다. 유니티에서 읽기/쓰기 가능한 경로에 대해 궁금합니다. sd카드에 파일을 읽기/쓰기 하려고 하는데 경로 설정을 잘 모르겠습니다. https://stackoverflow.com/questions/39983451/unity-android-save-files-disappears-after-updating-an-app/50280071#50280071 안드로이드 10 기준으로 어떤 게 sd카드 경로를 할 수 있는지 궁금합니다.
VScode 실행 후 터미널로 가상환경 설정이 안되는 이유를 모르겠어서 질문드립니다...! VS code로 바탕화면에 빈 폴더를 지정해놓고 터미널에 python -m venv myvenv 이렇게 입력했는데 가상환경은 생성되지 않고 "python"이라는 메세지말고는 아무일도 안 일어납니다.... 터미널을 git bash랑 명령 프롬프트로 바꿔서 해보았는데 결과는 똑같았고 Anaconda를 삭제하고 python 을 재설치 해보았는데도 결과는 똑같습니다ㅠㅠ 혹시 어떤게 문제인지 알려주실 수 있으실까요...?
욜로나 레티나넷 등을 이용하여 사진이나 영상 분석을 하고 싶습니다. 최종적인 목표는 사진 혹은 영상의 특정 부분을 구분하는 것입니다. (ex. 여러 개의 사진 혹은 영상 중 사람이 있는 것과 없는 것을 판단하여 사람이 있는 영상(사진)과 사람이 없는 영상(사진) 구분하기) 제가 머신러닝을 한번도 공부한 적이 없어서 어떤 방식으로 공부를 해야 좋을지 갈피가 잡히지 않습니다. 컴퓨터공학 전공이고 웹 프로그램을 업으로 삼고 있기는 하지만 통계학은 한번도 접해본 적이 없고, 수학은 20여년 전 고교 졸업 후 해본적 없습니다. 파이썬 역시 아주 가벼운 프로그램을 작성해 본 경험만 있습니다. [파이썬 머신러닝 완벽 가이드] -> [딥러닝 컴퓨터 비전 완벽 가이드] 순서로 강의를 볼 계획이고 현재 [파이썬 머신러닝 완벽 가이드]의 5장의 회귀를 공부하고 있습니다. 처음에 영상만 보다가 이해하기가 힘이 들어 교재를 구매해 함께 보면서 스터디 중입니다. [파이썬 머신러닝 완벽 가이드]를 완강한 후 [딥러닝 컴퓨터 비전 완벽 가이드]를 시작해야 하나요? 또한, 강의와 질문-답변들을 보면서 100% 이해한다기 보다는 어렴풋하게 개념을 잡고 간다는 생각으로 공부를 하고 있는데 이게 맞는지도 궁금합니다. 소소 코드는 최대한 이해하려고 노력하고 있습니다. 마지막으로 추천해 주시고 싶은 다른 강의나 책, 사이트가 있으시면 같이 보겠습니다. 감사합니다. 참고로, 두 달 전 머신러닝 스터디를 시작할 때 1. [파이썬 머신러닝 완벽 가이드] 의 3장 평가까지 완강 2. [딥러닝 컴퓨터 비전 완벽 가이드] 의 욜로 부분을 보면서 강의에 나온 소스로 테스트 성공 3. 리눅스 서버에 욜로5 설치 후 테스트 실패 - (https://datacook.tistory.com/60 사이트를 참조하여 학습을 시키고 학습이 잘 되었는지 테스트를 하는데 원하는 결과를 얻지 못했습니다.) 의욕만 많아서 급하게 테스트를 하니 디버깅 하기도 어렵고 어디서 어떻게 손을 봐야할지 잘 모르겠어서 다시 천천히 [파이썬 머신러닝 완벽 가이드] 를 공부하고 있는 중입니다.
[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part7: MMO 컨텐츠 구현 (Unity + C# 서버 연동 기초)
선생님처럼 저도 처음에는 캐릭터가 화살로 나가서 당황을 했엇는데, 캐릭터가 벽이나 화면 끝에 도달하지 않았는데 삭제가 될때 뻑이 나고 서버가 종료가 되서 원인을 찾아보니 화살의 CellX Y와 CellX Y를 토대로 얻어낸 배열 인덱스값을 화살이 움직일때마다 출력해 줬더니 위와같이 나왓습니다. 클라에선 벽이나 맵끝에 도착하지 않았지만 서버에서는 이미 도착한것으로 인식되었다는걸 확인했습니다. 제가 파악하기론 foreach문에 진입하고 나서 화살의 Update문을 실행햇는데 화살이 벽에 도착하거나 맵 끝에 도착해서 이 부분에서 삭제가 된 후 빠져나오면서 위처럼 조건을 다시 검사할때 여기서 에러가 납니다. 정리해보면 첫번째로는 서버에서는 화살의 움직임의 연산이 끝낫지만 클라에서는 물체의 속력이 빠르지 않아서 벽이나 맵끝에 닿기도 전에 삭제되는데, 서버의 프레임과 클라의 프레임을 맞추지 않아서 발생하는 문제인가요? 두번째로는 뻑이나는 부분인 foreach를 이용해서 ProjectTiles를 순회하는도중에 순회대상인 ProjectTile이 안쪽에서 삭제가 되어서 바깥쪽으로 나올때 에러가 나는것 같은데 이부분은 어떻게 해야 할까요..
안녕하세요 선생님, 질문이 있습니다. !pip install mmcv-full 이후에 런타임 다시 시작을 해야 import mmcv가 정상 작동하는데, 코랩 런타임 다시 시작하는 것이 어떤 원리인가요? 런타임 다시 시작을 안하면 import mmcv가 정상 작동하지 않는 이유가 궁금합니다.
선생님, 강의 잘 듣고 있습니다. 강의를 듣다가 궁금증이 생기는데 9/20 부터 15/20 즈음까지의 강의는 모두 결국 seaborn 라이브러리 안에는 여러 개의 xxplot이 있다는걸 소개하는거고 곧 활용할 수 있는 api에는 이러이러한 것이 있다 고 설명하는 셈이잖아요? 헌데 이런걸 전부 외우는 현업 개발자는 없고 그분들도 필요나 설계에 따라 맞게 쓰는 정도로 활용하는 걸루 알고 있는데 그래도 강의를 들으면서 최소한 숙지해야 하는 정도 라는게 있다면 어느 정도가 적절할는지 궁금합니다. 참고로 저는 원래 자바랑 c++ 위주로 쓰는 주니어이고 파이썬으로는 알고리즘까지는 낯설어서 잘 쓰진 않지만 자료구조 구현은 할 줄 아는 정도입니다. 그리고 최근에 머신러닝 배우면서 이 강의는 캐주얼한 용도로 듣고 있습니다. 감사합니다!
안녕하세요 ㅎㅎ 강의를 들으며 토이프로젝트로 조그마한 게임을 하나 만들고 있습니다. 몇 가지 궁금한 점이 생겨 질문드립니다. Q1.1) 아래 사진은 루카노르 백작 이라는 게임입니다. 캐릭터가 위의 문을 열고 들어가면 빌런인 염소가 존재합니다. 문제는 이 방을 나갔다 새로 들어와도 염소의 자리는 그대로 방을 나갈 당시 위치에 있습니다. 게임을 해본 추억을 되짚어 보니 두 가지로 나뉘더군요 1) 방을 나갔다 다시 들어오면 몹이 초기 젠 자리로 가있는 경우 2) 방을 나갔다 들어와도 아래와 같이 몹이 그자리 그대로 있는경우 1)번의 경우 모든걸 초기화하고 새로 만들면 될 것 같은데 2)번의 경우 기존의 정보를 어떤 방식으로 관리하는지 궁금합니다. 만약 던전의 방도 Scene으로 관리한다면 본 강의의 예제에서는 Scene간의 전환시 Manager를 통해 clear하는데 어떤식으로 코드를 수정해야할지 여쭙고싶습니다. 횡설수설하지만 정리해서 말씀드리면.. Scene전환시 이전 Scene으로 돌아갈때 이전 Scene의 상태를 그대로 유지한상태로 돌아가는 방법은 무엇인가요? Q2) 또 한가지 의문은, 리니지나 디아블로의 경우 던전의 한 층 자체를 Scene으로 관리할 것 같은데 아래와 같이 던전 내에 여러개의 문이 있고, 문에 입장하면 장면이 전환되는 경우 던전 내의 방들은 Scene으로 관리하나요? 설계는 개발자 마음대로라지만 Rookiss님이 게임을 만드신다면 어떻게 설계하실지 궁금합니다.
안녕하세요. 선생님 강의 잘 듣고 있습니다. 강의를 들으면서 책을 보고 웹 크롤링으로 데이터를 다운 받아 dataframe으로 전환 최종 엑셀로 저장하는 코드를 공부 하고 있습니다. 그런데 크롤링은 되는데 최종 엑셀 저장 파일을 보면 맨 처음 페이지만 저장 되는데요 아래 코드에서 잘못된게 있을까요? 그리고 break문을 적으면 SyntaxError : 'break' outside loop 에러가 나와 주석처리 했습니다. 제가 워낙 초보라 답변을 주실 수 있는지요? 감사합니다. # from selenium import webdriver # browser = webdriver.Chrome("/Users/maru/Downloads/chromedriver") # browser.get("https://seibro.or.kr/websquare/control.jsp?w2xPath=/IPORTAL/user/company/BIP_CNTS01042V.xml&menuNo=286#") search_btn = browser.find_element_by_id("image1") search_btn.click() html = browser.page_source from bs4 import BeautifulSoup from html_table_parser import parser_functions as parser import pandas as pd soup = BeautifulSoup(html, "html.parser") table = soup.find("table", attrs ={"id" : "grid1_body_table"}) p = parser.make2d(table) df = pd.DataFrame(p[2:], columns=p[1]) df.head() import time import random from tqdm import tqdm prev_no = 0 prev_table = None for i in tqdm(range(0,200)): try: next_btn = browser.find_element_by_id("cntsPaging01_next_btn") next_btn.click() except: time.sleep(2) try: next_btn = browser.find_element_by_id("cntsPaging01_next_btn") next_btn.click() except: time.sleep(2) next_btn = browser.find_element_by_id("cntsPaging01_next_btn") next_btn.click() def get_html(browser, cnt): if cnt >= 4: return -1, -1 html = browser.page_source soup = BeautifulSoup(html, "html.parser") cur_no = soup.find("a", sttrs = {"class" : "w2pageList_control_label w2pageList_label_selected"}) cur_no = cur_no.text table = soup.find("table", attrs={"id" : "grid1_body_table"}) if cur_no != prev_no and prev_table != table: return cur_no, table else: time.sleep(1) get_html(browser, cnt+1) cur_no, table = get_html(browser, 1) if cur_no == -1: print("\n종료. 테이블 정보가 바꾸지 않았습니다.") break p = parser.make2d(table) temp = pd.DataFrame(p[2:], columns=p[1]) df = pd.concat([df, temp], 0) prev_no = cur_no prev_table = html if cur_no == "95": print("\n 최종 페이지 도달") # break time.sleep(random.randrange(3, 5)) df.to_excel("stock_div.xlsx")
InputManager의 작동 원리가 잘 이해되지 않습니다. 그래서 디버깅으로 한 줄 한 줄 따라가 봤는데, 여전히 궁금한 점들이 있습니다. 1. 왜 InputManager _input = new InputManager();를 읽은 뒤 Init()를 다시 실행해서 DonDestroyOnLoad(go);를 읽는 건가요? Init();은 Start에 들어 있으니 첫 실행 때 한 번 호출되고 끝이어야 하는 게 아닌가요? 2. Managers의 업데이트에서 OnUpdate를 계속 호출해 줘서 키 입력을 감지하는 건 알겠는데 키 입력이 들어온 뒤 KeyAction.Invoke();가 어떤 역할을 하는지 모르겠습니다. 혹시 InputManager에서 if( KeyAction != null)일 경우 바로 OnKeyboard()를 호출하는 게 문법적으로 불가능하기 때문인가요?
클라이언트에서 보낸 데이터가 다 도착하지 않았을 때 다음 데이터가 올 때까지 기다린 후 처리한다고 말씀하셨는데, 이 부분이 코드 어디에 구현되어있는건가요...? 위에 있는 코드를 나름대로 해석해보니 1. OnWrite()는 _recvArgs.Buffer에 들어있는 데이터만큼 _recvBuffer의 _writePos를 증가시킨다. 2. OnRecv()한 데이터(_recvArgs.Buffer에 들어있는 데이터)의 크기를 processLen에 담는다. 3. processLen의 크기만큼 _readPos를 증가시킨다. 라고 이해했는데, 클라이언트에서 보낸 데이터가 완전한지 불완전한지 딱히 판단하는 부분은 없어보이고 그냥, [1.데이터가 들어온만큼 _writePos를 증가시킨다 2. 처리한다 3. 처리한만큼 _readPos를 증가시킨다]를 실행시킨거같아서요!
[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part7: MMO 컨텐츠 구현 (Unity + C# 서버 연동 기초)
안녕하세요, 스승님.. 질문이 있습니다. Speed를 서버를 통해 받아오더라도., updateMoving()의 소스 자체를 해킹 당하면 캐릭터 이동속도 핵은 생기지 않나 궁금합니다. 예를 들어 스르륵 이동하는 코드의 Speed를 서버에서 받아오더라도, transform.position += moveDir.normalized * Speed * Time.smoothDeltaTime ; => transform.position += moveDir.normalized * Speed * Time.smoothDeltaTime *2; 이렇게 수정한다면, Destination 에 더빨리 도착하여 더 빨리 이동하겠다는 패킷을 빨리 보낼 수 있지 않나 싶어서요.. 이 경우 서버에서도 스르륵 부분을 구현하여 대략 어느정도 도착할 시간을 비교해서 구별하는 부분을 추가하여 대처를 해야하는 것이 맞는 것인지 궁금합니다.. 늦은 시간 질문드려 죄송합니다! 늘 상세히 답변 주시어 정말 감사드립니다.