묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결자바스크립트 중고급: 엔진 핵심
[정리 시간] 작성해보았습니다.
선생님 안녕하세요. 항상 감사드립니다! [정리 시간]의 내용을 작성해보았는데 어렵네요...ㅜㅜ 가독성 좋고 효율적인 코드를 짜보고 싶은데 맘처럼 쉽지 않은 것 같습니다...ㅎㅎ
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
공격 판정이 잘 안됩니다
공격 판정이 기사의 발을 클릭해야 공격이 들어갑니다 머리를 클릭하면 RUN상태로 부비부비를 하고 있어요 ㅜㅜ 코드는 강의 그대로 따라했습니다! ============================================ using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.AI; public class PlayerController : MonoBehaviour { public enum PlayerState { Die, Idle, Moving, Skill, } int _mask = (1 << (int)Define.Layer.Ground) | (1 << (int)Define.Layer.Monster); PlayerStat _stat; Vector3 _destPos; GameObject _lockTarget; [SerializeField] PlayerState _state = PlayerState.Idle; public PlayerState State { get { return _state; } set { _state = value; Animator anim = GetComponent<Animator>(); switch (_state) { case PlayerState.Die: break; case PlayerState.Idle: anim.CrossFade("WAIT00", 0.1f); break; case PlayerState.Moving: anim.CrossFade("RUN00_F", 0.1f); break; case PlayerState.Skill: anim.CrossFade("Attack1", 0.1f, -1, 0); break; } } } void Start() { #region // Managers.Input.KeyAction -= OnKeyboard; // Managers.Input.KeyAction += OnKeyboard; #endregion _stat = gameObject.GetComponent<PlayerStat>(); Managers.Input.MouseAction -= OnMouseEvent; Managers.Input.MouseAction += OnMouseEvent; Managers.UI.ShowSceneUI<UI_Inven>(); } void UpdateDie() { } void UpdateMoving() { //몬스터가 내 사정거리보다 가까우면 공격 if(_lockTarget != null) { float distance = (_destPos - transform.position).magnitude; if(distance <= 1) { State = PlayerState.Skill; return; } } //이동 Vector3 dir = _destPos - transform.position; if (dir.magnitude < 0.1f) { State = PlayerState.Idle; } else { NavMeshAgent nma = gameObject.GetOrAddComponent<NavMeshAgent>(); float moveDist = Mathf.Clamp(_stat.MoveSpeed * Time.deltaTime, 0, dir.magnitude); nma.Move(dir.normalized * moveDist); Debug.DrawRay(transform.position + Vector3.up * 0.5f , dir.normalized, Color.green); if(Physics.Raycast(transform.position + Vector3.up * 0.5f, dir, 1.0f, LayerMask.GetMask("Block"))) { if (Input.GetMouseButton(0) == false) State = PlayerState.Idle; return; } transform.rotation = Quaternion.Slerp(transform.rotation, Quaternion.LookRotation(dir), 10 * Time.deltaTime); } } void UpdateIdle() { } void UpdateSkill() { if(_lockTarget != null) { Vector3 dir = _lockTarget.transform.position - transform.position; Quaternion quat = Quaternion.LookRotation(dir); transform.rotation = Quaternion.Lerp(transform.rotation, quat, 20 + Time.deltaTime); } } void OnHitEvent() { Debug.Log("OnHitEvent"); if(_stopSkill) { State = PlayerState.Idle; } else { State = PlayerState.Skill; } } void Update() { switch (State) { case PlayerState.Die: UpdateDie(); break; case PlayerState.Moving: UpdateMoving(); break; case PlayerState.Idle: UpdateIdle(); break; case PlayerState.Skill: UpdateSkill(); break; } } #region //void OnKeyboard() //{ // if (Input.GetKey(KeyCode.W)) // { // transform.rotation = Quaternion.Slerp(transform.rotation, Quaternion.LookRotation(Vector3.forward), 0.2f); // transform.position += Vector3.forward * Time.deltaTime * _speed; // } // if (Input.GetKey(KeyCode.S)) // { // transform.rotation = Quaternion.Slerp(transform.rotation, Quaternion.LookRotation(Vector3.back), 0.2f); // transform.position += Vector3.back * Time.deltaTime * _speed; // } // if (Input.GetKey(KeyCode.A)) // { // transform.rotation = Quaternion.Slerp(transform.rotation, Quaternion.LookRotation(Vector3.left), 0.2f); // transform.position += Vector3.left * Time.deltaTime * _speed; // } // if (Input.GetKey(KeyCode.D)) // { // transform.rotation = Quaternion.Slerp(transform.rotation, Quaternion.LookRotation(Vector3.right), 0.2f); // transform.position += Vector3.right * Time.deltaTime * _speed; // } // _moveToDest = false; //} #endregion bool _stopSkill = false; void OnMouseEvent(Define.MouseEvent evt) { switch (State) { case PlayerState.Idle: OnMouseEvent_IdleRun(evt); break; case PlayerState.Moving: OnMouseEvent_IdleRun(evt); break; case PlayerState.Skill: { if(evt == Define.MouseEvent.PointerUp) _stopSkill = true; } break; } } void OnMouseEvent_IdleRun(Define.MouseEvent evt) { RaycastHit hit; Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); bool raycastHit = Physics.Raycast(ray, out hit, 100.0f, _mask); // Debug.DrawRay(Camera.main.transform.position, ray.direction * 100.0f, Color.red, 1.0f); switch (evt) { case Define.MouseEvent.PointerDown: { if (raycastHit) { _destPos = hit.point; State = PlayerState.Moving; _stopSkill = false; if (hit.collider.gameObject.layer == (int)Define.Layer.Monster) _lockTarget = hit.collider.gameObject; else _lockTarget = null; } } break; case Define.MouseEvent.Press: { if (_lockTarget == null && raycastHit) _destPos = hit.point; } break; case Define.MouseEvent.PointerUp: _stopSkill = true; break; } } }
-
미해결실전! 웹사이트제작! Step by Step! ('라한호텔' 사이트제작_Application Course)
강의
강의 왜 안 보이나요??재생하니까 비공개 동영상이라고 뜨는데..
-
미해결Node.js로 웹 크롤링하기
mocha puppeteer 사용시 질문
삭제된 글입니다
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
안녕하세요. 질문있습니다!
안녕하세요. 이미 아래 질문글을 다 읽어보면서 비슷한 질문이 몇번 있었던 것은 확인했지만 명확하게 이해가 되지 않아서 재차 질문을 남깁니다. 1. MemberForm을 Controller에 선언한 이유와 실무에서도 저렇게 선언해도 되는지, 선언해도 되고 많이 선언해 사용한다면 vo? dto? domain? 이곳에 선언해야 할 것과 Controller에 선언해 사용해도 될 것의 차이가 무엇인지 궁금합니다. 국비지원 교육을 받은 수준에서는 MemberForm이 그냥 vo 같다고 밖에 안느껴지는데, vo를 domain에 선언하지 않아서 혼란이 생겼습니다. (이전 질문을 보며 domain 과 vo는 다르다고 글을 쓰신건 보긴 했지만 개념은 모르는 상태입니다.) 2. 어디서 lombok이란 라이브러리? api?를 쓰는 것을 봤는데, 제가 보기에는 자동으로 getter, setter를 생성해주는 녀석이라고 느꼈습니다. 그렇다면 lombok이라는 녀석을 무조건 쓰는게 이득이지 않나 1차원적인 생각이 들어서 lombok을 쓸때의 단점과 lombok을 사용하지 않고 getter, setter를 기재해서 사용할 떄의 장점이 있나 궁금해서 질문 남기게 됐습니다. 좋은강의 남겨 주셔서 감사하고 좋은하루 되세요!
-
미해결Vue.js 끝장내기 - 실무에 필요한 모든 것
파일 경로 alias
수업을 잘 보고 있습니다. 혹시 vue.config.js 에 경로 alias를 안주는 이유가 있으신가요? 개인프로젝트 때 인텔리제이에서 할려고 하는데 거기서는 vue.config.js에서 경로 alias를 줘도 크게 문제가 없는건가요? 답변 주시면 감사하겠습니다.
-
미해결스프링 핵심 원리 - 기본편
접근 제어자 관련 질문입니다.
제가 아직 자바 기본 개념이 많이 미숙한가봅니다... 접근제어자에 관한 질문이 좀 있는데요. 1. OrderServiceImpl 등에서 MemberRepository와 DiscountPolicy가 private final로 선언되는 이유가 궁금하고, 2. AppConfig 리팩토링에서 왜 memberRepository()는 접근 제어자가 private인 반면, discountPolicy()는 public으로 하셨는지 궁금합니다.
-
미해결
react 안배웠는데
자바스크립트는 기본은 알지만 리액트 안배웠는데 이강좌 배워도 되는지.. 그리고 깊이가 어느정도 되는지용? 여기 배우면 리액트 프로젝트 들어갈수있나요?
-
미해결[개정판] 딥러닝 컴퓨터 비전 완벽 가이드
colab Error 관련
안녕하세요 선생님, tensorflow-gpu==1.15.2 를 설치 후 코랩에서 import keras를 실행할 때 버전에러?같은것이 발생합니다. 혹시 해결할 수 있는 방법이 있을까요?
-
미해결작정하고 장고! Django로 Pinterest 따라만들기 : 바닥부터 배포까지
컨테이너에서 볼륨 설정 문의 드립니다
안녕하세요! 딱 61강 끝내고 서버 잘 돌아가는거 확인하고 한가지 의문이 생겨서 문의드립니다. 혹시 django_container_gunicorn 만들 때 볼륨 설정했던 것 같은데 pragmatic 폴더가 원래 여기쯤 생겨있어야 하지 않나 싶어서요..
-
미해결윤재성의 만들면서 배우는 Spring MVC 5
mapper
mapper에서 그냥 쿼리문을 쓰지않고 CDATA를 넣는 이유가 무엇인가요?
-
미해결
png파일 관련
안녕하세요 html과 css를 시작한지 얼마 안되 왕초보입니다. 동영상 강의를 들으면서 따라하는 중인데 css에서 png파일이 적용이 안돼서 질문 남깁니다ㅜ 이 png 파일이 스프라이트 형식으로 되어있어서 이미지가 여러 개 있는데 처음 로고에 적용할 때는 투명 배경이 적용돼서 잘 적용했습니다. 두 번째에 같은 이미지의 다른 부분(검색 아이콘)을 넣으려고 했더니 같은 png파일임에도 불구하고 회색 배경?이 같이 들어가더라고요ㅠㅠ 여기서부터 강의를 못듣고 있습니다. 혹시 문제를 아시는 분 답변 부탁드립니다ㅠㅠㅠ
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
인텔리제이에서 실행과 jar파일 배포해서의 실행 차이에 대해 궁금합니다.
@Controller @RequestMapping("/test") public class TestController { @GetMapping("/test") public void test1(){ System.out.println("test1"); } @GetMapping("/test2") public String test2(){ System.out.println("test2"); return "test/test"; } @GetMapping("/test3") public String test3(){ System.out.println("test3"); return "/test/test"; } } 위와 같이 컨트롤러 작성하고 resources/templates/test/test.html 파일을 생성해 두었습니다. 인텔리제이에서는 아무런 문제없이 test, test2, test3 모두 정상적으로 실행되는데 jar파일 생성후 java -jar로 실행하면 test, test2는 실행되는데 test3를 호출하면 http://localhost:8080/test/test3 ERROR 3380 --- [nio-8080-exec-3] org.thymeleaf.TemplateEngine : [THYMELEAF][http-nio-8080-exec-3] Exception processing template "/test/test": Error resolving template [/test/test], template might not exist or might not be accessible by any of the configured Template Resolvers 위와 같이 오류가 발생됩니다. test3의 리턴값에 "/" 을 붙여 절대경로로 설정되어 있는것인데. 왜 인텔리제이에서는 정상적으로 실행되는반면 jar배포 파일로 실행하면 오류가 발생되는지 모르겠네요. 1. 위의 상황에서 리턴값에 "/" 이 포함안된 상대경로로 하는게 맞는것인지? "/" 포함된 절대경로로 하는게 맞는것인지? 또는 둘다 맞는것인지 궁금합니다. 2. 인텔리제이와 jar파일 배포시 왜 다른 결과가 나오는지 궁급합니다. 인텔리제이 2020.0.4 버전 스프링부트 2.5.0 자바 11
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
args.Completed += OnConnectCompleted; 에서 질문 있습니다.
Listener에서는 args.Completed 이벤트에 콜백 함수OnAppectCompleted()를 추가할때 args.Completed += new EventHandler<SocketAsyncEventArgs>(OnAppectCompleted); 위와 같이 구현하셨는데, Connector에서 args.Completed 이벤트에 콜백 함수OnConnectCompleted()를 추가할때 args.Completed += OnConnectCompleted; 로 구현하신 이유가 있을까요??
-
미해결코알못에서 웹서비스 런칭까지 : 2021 제주 코딩 베이스캠프(Django)
Lorem
<p> Lorem</p> 를 쓸 때 Lorem 택스트가 한 줄 끝까지 나오는데요. 이곳을 어떻게 각 별행처럼 쓸 수 있어요?
-
미해결공공데이터로 파이썬 데이터 분석 시작하기
05-park_pandas_profile.html 관련
삭제된 글입니다
-
미해결파이썬 무료 강의 (기본편) - 6시간 뒤면 나도 개발자
만약 수수료를 퍼센트로 계산한다면
어떻게 구현해야 좋을까요?ㅠ 이곳저곳 넣어봐도 잘 되지 않아서 문의드려요.. def withdraw_night(balance, money): #저녁에 출금 commission = 100 # 수수료 return commission, balance - money - commission balance = 0 balance = deposit(balance, 1000) # balance = withdraw(balance, 500) commission, balance = withdraw_night(balance, 500) print("수수료 {0}원이며, 잔액은 {1}원 입니다.".format(commission, balance)) 이 부분을 수정해야할 것 같은데, 도와주시면 감사하겠습니다.
-
미해결선형대수학개론
theorem3 a. d. 증명과 관련한 자료
theorem3 a. d. 증명과 관련한 자료가 슬라이드가 모여진 구글드라이브에 없는 것 같아서 질문드립니다. 어디서 볼 수 있을까요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
jpa 테스트 실행에서 오류 발생
안녕하세요 강사님! 양질의 교육 정말 감사합니다. 다름이 아니라 이번 JPA 파트 이전까지만 해도 잘 돌아가던 통합 테스트가 import 부분처럼 오류가 뜨기 시작했습니다. 소스코드를 강사님과 완전히 똑같이 쳤는데 무슨 문제가 있는지 알고 싶습니다
-
해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part5: 데이터베이스
UNION에 관하여
UNION강의 4:30초에서 커리어 평균 연봉이 3000000 이상 "이거나" 12월에 태어난 선수를 구할 때 WHERE birthMonth = 12를 추가해주면 된다고 하셨는데 이 경우 커리어 평균 연봉이 3000000 이상 "이고" 12월에 태어난 선수를 구한 것 아닌가요?