목표 지점으로 이동시키기 [유니티 입문 강좌 B7]

Поделиться
HTML-код
  • Опубликовано: 10 дек 2024

Комментарии • 262

  • @그럼날아봐
    @그럼날아봐 5 лет назад +74

    Vector3 클래스에서 제공하는 이동 함수
    0:38 1. MoveTowards: 등속이동, 매개변수는 (현재위치, 목표위치, 속도)로 구성, 마지막 매개변수에 비례하여 속도 증가
    Vector3 target = new Vector3(8, 1.5f, 0);
    void Update() {
    transform.position =
    Vector3.MoveTowards(transform.position, target, 2f);
    2:23 2. SmoothDamp: 부드러운 감속이동, 마지막 매개변수에 반비례하여 속도 증가
    Vector3 velo = Vector3.zero;
    transform.position =
    Vector3.SmoothDamp(transform.position, target, ref velo, 0.1f);
    ※ ref: 참조 접근 -> 실시간으로 바뀌는 값 적용 가능
    6:18 3. Lerp: 선형 보간, SmoothDamp 보다 감속시간이 김, 마지막 매개변수에 비례하여 속도증가(최대값1), 0~1까지의 값을 가짐
    transform.position =
    Vector3.Lerp(transform.position, target, 0.05f);
    8:22 4. Slerp: 구면 선형 보간, 호를 그리며 이동, 포물선 이동
    transform.position =
    Vector3.Slerp(transform.position, target, 0.05f)
    유익한 유니티 강좌 영상 정말 감사합니다!! ^^ 잘 배우고 공부하고 갑니다!

  • @햄버거-b2k
    @햄버거-b2k 2 года назад +1

    수업 시작하면서 내용설명하실때 '음~ 오늘은 뭐뭐뭐 해볼껍니다~ 음 조와여~' 하시는거 너무 찰지고 재밋어요!! 강의도 너무 좋아요 감삼다

    • @goldmetal
      @goldmetal  2 года назад

      감사합니다! 😄

  • @조민기-i8j
    @조민기-i8j Год назад +2

    Slerp가 Lerp처럼 움직이는 분들께선 '현재위치'와 '목표위치'를 원점(0, 0, 0)을 기준으로 축을 서로 반대편에 둬보세요.
    예) 현재위치 = (-2, 0, 0), 목표위치 = (8, 1.5f, 0)
    저도 정확히는 모르겠는데.., Slerp 함수가 임의의 원을 잡고 두 점 사이의 호를 구할 때, 임의의 원이 무조건 (0, 0, 0)이 원의 중심으로 되도록 구현되어있는 것 같아요. 저도 찾아봐서 해봤는데 되더라구요.
    호가 영상처럼 y축으로 움직이지 않고 z축으로 움직이는 분들은 y축 변화량만 주시고 z축 변화량은 주지 말아보세요(이거도 알아서 하는 말은 아닌데 해보니까 변화량 있는 쪽 기준으로 호를 그리며 움직이는 것 같아서요.)
    해보면서 생긴 야매라 정확한건 아니에요
    아무튼 좋은 강의 올려주신 골드메탈님 잘 배우고 있습니다. 진심으로 감사드립니다!
    그리고 열심히 배우려는 모두 화이팅해요~

  • @당근양파-y7g
    @당근양파-y7g Год назад

    감사드립니다! 덕분에 유니티와 c# 입문을 수월하게 한 거 같아요!!

  • @황두현-s8b
    @황두현-s8b 5 лет назад +7

    2d 게임을 만드는 게 꿈인데 집에 책도 있겠다 오히려 3d 강의들을 구사해서 2d 게임을 만들어보는 게 더 재밌고 유익할 것 같네요. (여기까지 내다보시고 강의영상을 올리신 거라면... ㄷㄷ) 너무 감사하고 곱씹어 보겠습니다. 다시 한 번 정말로 감사합니다!

    • @숲튽훈-d9t
      @숲튽훈-d9t 3 года назад

      2년전 댓글이긴 한데 이 강의에서 나오는건 완전히 기초라서 2d랑 3d에 다 적용되는것들이 대부분이라 그런점도 있어요

  • @MakeOurDream
    @MakeOurDream 2 года назад +1

    선형보간 쓰려고 찾아보고있었는데 골드메탈님 강좌가있어서 잘 보고 가겠습니다:)
    필요한 게임이론들은 진짜 다있네요ㅎㅎ

  • @halionaz
    @halionaz 5 лет назад +3

    정말로 힘이 많이 됩니다! 늘 감사합니다

  • @pacific_parrotlet
    @pacific_parrotlet 4 года назад +5

    오늘 8강까지 봤네요 정말 유익한 영상 감사합니다 컴공은 아니고 전자공이라 간접적인 전공?이라서 겉핥기 식으로 배웠는데 진짜 5강은 학부생들한테 꼭 보여줘야할 퀄리티네요

  • @Moni77540
    @Moni77540 2 года назад +1

    패스트캠퍼스에서 유니티 유료강의도 구입해서 봤었는데 너어...무 재미없고 딱딱하게 가르쳐서 찾아보다가 골드메탈님 알게되서 정주행중인데요,
    골드메탈님은 사랑입니다 ㅠ,ㅠ 진짜 이해가 쏙쏙 되고 깨알 재미까지 있고, 핵심만 콕콕 찝어주시니 감사할 따름입니다!! 꾸벅 인사하고 갑니다🙏

  • @heartl4882
    @heartl4882 5 лет назад +2

    항상 유익한 강좌 올려주셔서 감사하네요. 많이 배우고 갑니다~ ^^

  • @sooseo8288
    @sooseo8288 5 лет назад

    유익한 강의 감사합니다. lerp는 유니티 책으로 배웠었는데 책보다 이 강의가 훨씬 이해기 쉽게 만들어진 것 같네요.

    • @goldmetal
      @goldmetal  5 лет назад

      오옷 그렇게 봐주시다니 정말 감사합니다.

  • @비베라
    @비베라 4 года назад +3

    smoothDamp 부분에서 순간이동후 천천히 움직이길래 뭐가 문제인지 한참을 들여다봤네요ㅋㅋㅋ
    저한테 일어난 문제는 velo 값을 참조하는데 있어서 계속 zero로 초기화후 참조를 시켜서 생기는 문제였던것 같아서 velo 초기화를 update 밖으로 빼니까 잘 실행되네요

    • @whitemochi5067
      @whitemochi5067 3 года назад

      저는 이해 자체를 못하겠는..

    • @yoru83yoru
      @yoru83yoru 3 года назад

      @@whitemochi5067 velo 변수 초기화 문장이 update()함수 안쪽이 아니라 바깥쪽이라는 말씀같아요

  • @DNChannel-x4y
    @DNChannel-x4y 4 года назад +2

    쉬운 설명, 예시들 감사합니다. 제가 원하고 필요로 하던 자료들이 있네요. 잘 활용하겠습니다~

  • @LCK-xg4wv
    @LCK-xg4wv 10 месяцев назад +1

    횽님 재밌어요 덕분에 컴퓨터 장만하게 생겼습니다 캬캬캬 사랑해요

    • @goldmetal
      @goldmetal  10 месяцев назад

      재밌는 게임개발 되시길 바랍니다 🤗

  • @mophe12
    @mophe12 2 года назад +1

    뭐지 골드메탈님 발음 넘 귀여우세요

    • @goldmetal
      @goldmetal  2 года назад

      개인적으로 발음 안좋다고 생각하는데 좋게 봐주셔서 감사합니다 🥰

  • @오루에몽
    @오루에몽 3 года назад +3

    골드메탈님 1:33초에 있잖아요
    transform.position =
    Vector3.MoveTowards(transform.position
    , target, 1f);
    을 해석하면 현재의 위치를 변형시키는데 타겟쪽으로 1f만큼의 속도로 이동한다 라는 뜻이 되는 건가요? transform.position이 두개가 있어서 조금 헷갈려하는 거 같아서 짚고 넘어가야 할거 같아서요 무례하고 귀찮은 질문을 해서 죄송합니다.

    • @goldmetal
      @goldmetal  3 года назад +2

      네 속도의 개념이라 생각하시면 됩니다.

    • @오루에몽
      @오루에몽 3 года назад

      @@goldmetal 감사합니다!

  • @user-gi3tc8yr6j
    @user-gi3tc8yr6j Год назад +1

    감사합니다..!

  • @eloe2003
    @eloe2003 3 года назад

    잘들었습니다!

  • @성공노트
    @성공노트 Год назад

    감사합니다!!

  • @YHS1877
    @YHS1877 11 месяцев назад +1

    강의 잘보았습니다. 하지만 SmoothDamp에 대한 설명을 고쳐야할것 같습니다. 3번째 인자인 참조속도의 경우 Update()함수 안에서 선언할 경우 매 싸이클마다 초기화 되어버리기때문에 사용하는 의미가 없고 부드러운 움직임도 불가능하게 됩니다, 결과적으로 처음 보여주신 예제대로 물체가 엄청 천천히 뚝뚝끊겨 움직이는것처럼 보이게 되어버리는겁니다.
    이 인수의 역할은 부드러운 이동을 위해 현재 위치에서 목표 위치로 가는 데 필요한 속도를 추적하는 것입니다. SmoothDamp 함수는 내부에서 현재 속도를 계산하고 currentVelocity에 저장하여 나중에 사용합니다. 이렇게 함으로써 함수가 호출될 때마다 처음부터 다시 시작하는 것이 아니라 이전 호출에서의 속도 정보를 유지할 수 있습니다.

  • @머루츄
    @머루츄 4 года назад +2

    리액션 미챠 ㅋㅋㅋㅋㅋ 와우~!! ㅋㅋㅋㅋㅋㅋㅋ

  • @imha321
    @imha321 2 года назад +1

    target의 값을 목표가 있는 좌표를 넣어야 하는구나 무지성으로 따라썻다가 엉뚱한대로 감 ㅋㅋ

  • @궭-m2v
    @궭-m2v 4 года назад +1

    SmoothDamp를 넣었는데 감자기 순간이동을 하다가 느리게 움직이네요;; 0.5로도 해보고 0.1로도 해봤는데 똑같네요;;
    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    public class NewBehaviourScript : MonoBehaviour
    {
    Vector3 target = new Vector3(2.01f, 1.5f, 4.89f);
    void Update()
    {
    Vector3 velo = Vector3.zero;
    transform.position = Vector3.SmoothDamp(transform.position, target, ref velo, 0.1f);
    }
    }

    • @goldmetal
      @goldmetal  4 года назад +1

      게임 플레이시 컴퓨터 환경에 따라 시작 렉이 걸릴 수 있습니다.
      public bool isMove;
      Vector3 target = new Vector3(2.01f, 1.5f, 4.89f);
      void Update()
      {
      if(isMove) {
      Vector3 velo = Vector3.zero;
      transform.position = Vector3.SmoothDamp(transform.position, target, ref velo, 0.1f);
      }
      }
      이렇게 플래그 변수를 추가하시고 게임을 실행한 뒤
      인스펙터 창에 isMove를 체크해보세요.

    • @궭-m2v
      @궭-m2v 4 года назад

      @@goldmetal 전보단 좋네요.

  • @알고싶은것알려주는채
    @알고싶은것알려주는채 2 года назад +2

    골드매탈님 목적지를 어떻게 정하나요?? 계속 카메라 한테 가거든요 ㅠㅠ 답장 부탁 드림니다....!

    • @goldmetal
      @goldmetal  2 года назад

      위쪽 부분에 target 변수 선언하셨을텐데요,
      여기서 값 X, Y, Z 축을 바꾸어주시면 됩니다.
      더 재밌게 하시려면 아래 방법을 따라해보세요.
      1. Vector3 target 변수 선언 앞에 public 키워드를 추가 ( public Vector3 target; )
      2. 저장하고 인스펙터를 보면 taget이라는 칸이 생기는 것 확인
      3. Scene 에서 원하는 3D 도형 추가하고 원하는 위치로 옮기기
      4. 하이어라키에서 이 오브젝트를 선택하고 드래그해서 target 칸에 집어넣기
      5. 테스트

    • @알고싶은것알려주는채
      @알고싶은것알려주는채 2 года назад

      @@goldmetal 답변 감사합니다!!!!!😁

  • @Sources-Management-Commission
    @Sources-Management-Commission 6 месяцев назад +1

    02.부드러운 이동 SmoothDamp() 하실 때 3번째 매개변수 칸에 ref velo 라고 넣으시고 velo라는 변수를 정의하셨는데 그러면 velo 칸에다가 그냥 Vector3.zero 넣어도 되나요?

    • @goldmetal
      @goldmetal  5 месяцев назад

      그냥은 안들어가고 꼭 변수 하나 선언해주고 넣어야 하더라구요.

    • @Sources-Management-Commission
      @Sources-Management-Commission 5 месяцев назад +1

      @@goldmetal 넹 감사합니다

  • @tommygurem1
    @tommygurem1 6 месяцев назад +1

    처음에 도형 세팅할때, xyz축 방향 세팅하기가 힘든데 팁이 있나요??

    • @goldmetal
      @goldmetal  6 месяцев назад

      위치 이동, 회전, 크기 도구는 QWER 단축키로 바꾸실 수 있습니다.
      이후엔 Scene에 보이는 기즈모(화살표 혹은 원) 을 눌러서 변형하시면 됩니다.
      Ctrl 을 누르시면서 드래그하면 일정 단위로 이동,회전하는 스냅이 걸립니다. (스냅량은 Scene 위쪽의 자석 버튼에 입력된 값)

  • @lovelike2278
    @lovelike2278 4 года назад +2

    transform.position = 을 앞에 붙이는 이유와
    SmoothDamp에서
    Vector3 velo = Vecter.zero; 의 역할이 정확히 뭔지 궁금하네요

    • @goldmetal
      @goldmetal  4 года назад +1

      새로 적용된 값을 ㅇ오브젝트에 적용하기 위해서
      transform.position = 을 앞에 붙이는 겁니다.
      이렇게 값을 넣지 않으면 아무런 반응이 없답니다.
      Vector3.zero는 모든 값이 0인 단위벡터입니다. (0, 0, 0)
      그냥 선언된 velo 변수를 초기화해주는 용도라 보시면 됩니다.

    • @lovelike2278
      @lovelike2278 4 года назад

      감사합니다!

  • @programmerttimo
    @programmerttimo 2 года назад +1

    그럼 좌표나 위치 등을 지정할때 벡터를 쓰는건가요? 그리고 클래스 안에 있는 멤버 변수나 메서드를 사용할려면 인스턴스화를 해서 참조 변수를 이용해서 사용해야하나요?

    • @goldmetal
      @goldmetal  2 года назад +1

      Transform 관련은 대부분 Vector3 많이 사용한다고 생각하시면 되겠습니다.
      이번 강좌에서도 하셨겠지만 꼭 인스턴스화 할 필요 없이 바로 사용 가능한 함수들도 꽤 많습니다.

    • @programmerttimo
      @programmerttimo 2 года назад +1

      @@goldmetal 귀찮으셨을텐데 답장 달아주셔서 김사합니다!!

  • @카카누-s6b
    @카카누-s6b 4 года назад +3

    영상 잘보구있습니다.
    저도 게임 제작을 하는데 3d에서 물체를 올려두고 게임을 실행하면 물체는 가만히 있는데 x,y,z 좌표 2.195298e-09 이런식으로 수치가 치솟는 문제가 있습니다.
    무슨 문제인지 알수 있을까요ㅠㅠ

    • @goldmetal
      @goldmetal  4 года назад

      e가 붙는 값은 더미값이므로 크게 신경쓰실 필요는 없습니다.

  • @JIN-um6mo
    @JIN-um6mo 4 года назад

    저번시간에는 transform.Translate를 썻는데 이번에는 transform.position을 쓴 이유가 궁금해요!(0:40부분입니다!)
    그리고 06:10 부분에 Vector3 velo = Vector.zero; 이렇게 하셨는데 Vector3 velo = new Vector3(0,0,0); 이렇게 해야하지 않나용??
    왜 new를 안써도 되는지, 그리고 ()를 쓰지않고 .zero만 써도 되는지 궁금합니다!

    • @goldmetal
      @goldmetal  4 года назад +1

      transform.Translate 함수는 현재 위치에서 매개변수 벡터값을 더해지는 형태이고, 이번 MoveToward 함수는 주어진 매개변수 벡터를 목표로 삼아서 이동하는 함수입니다. 작동하는 방식이 조금 다르니 참고하시면 좋겠습니다. 그리고 Vector3.zero, .one. right 같은 속성은 static(정적)이라 이미 메모리에 올라와 있는 상태라 따로 new를 사용할 필요가 없습니다. 직접 변수를 선언할 때도 public static 키워드를 붙이면 다른 클래스에서 new없이 접근 가능합니다.

    • @JIN-um6mo
      @JIN-um6mo 4 года назад

      @@goldmetal 정확하게는 아직 잘 모르겠지만, 조금조금씩 해나가며 이해해보겠습니다! 감사합니다!!

  • @Cyan._.Lee899
    @Cyan._.Lee899 3 года назад +1

    오브젝트가 플레이어를 따라가도록 만들려면 어떻게 해야 하나요

    • @goldmetal
      @goldmetal  3 года назад +1

      이번에 알려드린 이동 함수의 목표지점에 플레이어를 넣고 현재 위치에 자기위치를 넣으면 됩니다.

  • @김윤건-r7t
    @김윤건-r7t 3 года назад +1

    2:03 부분에 속도가 2로 정수인데 왜 뒤에 f가 붙는건가여?

    • @goldmetal
      @goldmetal  3 года назад +1

      MoveToward 함수의 매개변수 타입은 float형 입니다.
      f를 안쓰고 정수로 넘겨도 상관은 없지만 그래도 타입을 맞추기 위해 f를 써준거랍니다.

    • @김윤건-r7t
      @김윤건-r7t 3 года назад

      감사합니당😊

  • @hwudyhd7753
    @hwudyhd7753 5 лет назад +1

    사랑해요 메탈이형

  • @user-mo3bk6wv6l
    @user-mo3bk6wv6l 4 года назад

    사랑해요 골드메탈

  • @윤정길-b6d
    @윤정길-b6d 4 года назад

    SmootthDamp는 왠지 잘 안쓸꺼같은 느낌이네요~~~ Lerp가 개인적으로는 많이 쓸꺼같네요 ㅎㅎ

  • @lowling6980
    @lowling6980 4 года назад

    요번 영상도 정말 재미있고 유익했어요.
    하지만... 이번 영상은 특히나 궁금증이 심하게 많아지는 영상이었어요. (구글링 해도 나오질 않네요 ㅠㅠ 답변해주시면 정말 감사하겠습니다.)
    1. 2:00 마지막 매개변수의 2f가 속도랑 같다고 보면 된다고 하셨는데, 1f가 정확히 얼마 만큼의 수치(?)를 가지고 있나요? (ex. ~~m/s)
    + 위의 것과 저번 편 내용을 제대로 이해한게 맞다면, Vector3 target = new Vector3(8, 1.5f, 0) 은 target 이라는 벡터의 위치가 (x축 방향으로 8, y축 방향으로 1.5만큼 계속해서 이동, z축은 0) 쯤으로 해석할 수 있는데, target이 Vector3.MoveTowards의 목표위치 칸에 들어가면, y축의 값은 계속해서 늘어날 텐데, 이렇게 되면 player도 계속해서 위로 움직여야 하는게 아닌가요?
    아니면, 벡터값에서는 f가 또 다른 개념으로 작용하는건가요??
    ++target의 좌표값은 어떻게 입력하셨나요? 영상 내에서 스킵되어서 잘 이해가 가질 않네요. 대충 비슷하게 큐브의 x좌표와 z좌표만 같게하고, y좌표만 뒤에 f를 붙여놨는데, 작동하질 않네요.
    2. 3:42 참고할 만한 댓글이 있나 탐색하던 와중, 공식문서에 의하면 SmoothDamp의 마지막 매개변수는 도달하기 까지의 시간이라고 하던데, 영상에서는 0.1f로 돼있어 한층 더 f에 대한 개념이 이해하기 어렵네요. SmoothDamp에서도 f의 개념이 다른건가요?
    계속해서 f에만 매달리는 11분 이었던 것 같아요 ㅎㅎ;; 정말 강의 해주셔서 감사하고 앞으로도 열심히 강의 듣도록 하겠습니다!!

    • @goldmetal
      @goldmetal  4 года назад +1

      1. 마지막 매개변수는 maxDistanceDelta라고 합니다만, 여기에 기입된 숫자만큼 호출될 때마다
      실행되는 횟수가 증가합니다. 그러니 숫자를 크게 넣을 수록 실행되는 횟수가 많아지니
      그만큼 속도가 빨라지게 됩니다.
      해당 영상에서 다룬 함수들은 모두 목표지점 "까지" 이동입니다.
      target의 방향으로 계속 이동하는게 아니니 참고하시기 바랍니다.
      숫자 뒤에 f를 붙인건 단순히 float 형을 나타내기 위함이니 크게 신경쓰시지 않아도 됩니다.
      2. 맨 마지막 매개변수는 실행 후의 딜레이 정도로 생각하시면 됩니다.
      기본값은 Time.deltaTime 이고 이보다 값을 낮게주면 빠르게, 많이주면 느리게 움직이게 됩니다.

    • @lowling6980
      @lowling6980 4 года назад

      @@goldmetal 아 이해가 됐어요!!! 답변 감사합니다!!

  • @heodoly
    @heodoly Год назад

    코딩 극생초보입니다. 입문편 재생목록편 정독하고 있습니다.
    Vector3 target = new Vector3(8, 1.5f, 0); ..이 목표물인 사각형cube를 말하는 거죠? 8, 1.5f, 0이 목표물의 XYZ축이구요?.. 맞다면 ..Y축의 1.5f에서 f는 왜 있는거에요?

    • @heodoly
      @heodoly Год назад

      아..설마 무조건 소수점쓰면 소수점 뒤에 f를 써야 되서 쓰는건가요? 맞다면 속도의 2f땜시 혼돈이 왔어요.
      그리고 혹시 현재 cube 위치가 (8, 1.5f, 0)인데..그냥 제가 임의로 (10, 2, 0)으로 하면 실린더는 그 위치로 가게 되겠죠?

    • @goldmetal
      @goldmetal  Год назад

      네 맞습니다. 뒤에 f붙이는 것은 이 숫자의 타입이 float 형이다 라는것을 명시하는 것이에요.
      사실 소수점이 없으면 f 는 생략하셔도 됩니다.

  • @토이-q2i
    @토이-q2i 4 года назад +1

    음 영상을 따라하면서 하고 있다가 중간에 궁금한 부분이 생겨서 물어봅니다.목표지점으로 설정한 오브젝트에 스크립트 삽입안하면 목표지점에 가시지 않아서 목표지점에 스크립트 삽입했는데 실행을 하면 목표지점으로 설정한 오브젝트인 cube의 y축이 증가하네요.영상에서는 안 그렇던데 어떤 부분이 잘못된건가요?

    • @goldmetal
      @goldmetal  4 года назад

      해당 강좌에는 목표지점을 단순한 위치 Vector3 로 잡아놓았습니다.
      때문에 목표지점에 있는 큐브에는 스크립트가 없는 상태입니다.
      목표 오브젝트 위치로 이동하고 싶으시다면 public Transform target;
      이렇게 공개 전역변수로 만드시고 인스펙터 창에서 목표 오브젝트를
      끌어다 놓으신 다음, target.position 값을 목표지점으로 사용하시면 됩니다.

  • @사과김-j8u
    @사과김-j8u 4 года назад

    1:22 초에 Vector3 target = new Vector3(8, 1.5f, 0); 이 코드를 적용시키는 이유를 자세히알고싶어요,,,
    영상에는 자세히설명히 안나와있어서.. 8,1.5f,0 이 뭘 나타내는건가요?

    • @goldmetal
      @goldmetal  4 года назад

      X축 8, Y축 1.5, Z축 0 의 값을 가진 벡터를 생성하는 부분입니다.
      벡터에 대한 내용은 B6의 챕터 4에서 다루고 있습니다.
      ruclips.net/video/wqRwsW03JR4/видео.html

    • @사과김-j8u
      @사과김-j8u 4 года назад

      @@goldmetal 아하...x,y,z축을 설정할때 x,y,z축에는 상수값은 그대로 쓰지만 실수값을쓰려면 f를 붙여야하기에 1.5f로 써야하는거죠?

  • @내-p3z
    @내-p3z 3 года назад +1

    특정 오브잭트 위치로 이동할려면 어케하면 좋을까요?

    • @goldmetal
      @goldmetal  3 года назад +1

      이 영상에서 다룬 함수 두번째 매개변수가 목표지점이니까
      특정 오브젝트 위치를 두번째에 넣어주시면 되겠습니다.
      예) Vector3.Lerp(transform.position, other.position, 0.1f);

    • @내-p3z
      @내-p3z 3 года назад

      @@goldmetal오케이 땡큐 골드메탈!

  • @letsdoourbest5033
    @letsdoourbest5033 3 года назад +1

    저 질문이 있습니다 전 오브젝트 색이 오줌색이고 그림자도 있어서
    보기가 힘든데 어떻게 저렇게 하얗게 되나요???

    • @goldmetal
      @goldmetal  3 года назад +1

      유니티 디버그 D03 영상을 참고해주세요
      ruclips.net/video/j7gc3ZNh9c4/видео.html

    • @letsdoourbest5033
      @letsdoourbest5033 3 года назад +1

      @@goldmetal 감사합니다!

  • @심리놀이터
    @심리놀이터 3 года назад

    1:38 여기에서 player가 cube로 가긴 가는데... player 가 cube 안으로 들어가버립니다. 이동도 수평으로 가는게 아닌 대각선으로 이동해서 cube 안으로 들어가버려요... 코드는 똑같이 했고 cube Scale 5, 3, 5 로 만들었습니다.. 이유가 무엇일까요 ~?

    • @goldmetal
      @goldmetal  3 года назад

      지금은 물리, 충돌에 대한 컴포넌트가 없기 때문에 좌표가 겹치면 들어가게 됩니다.
      이동 함수 사용법만 숙지하시고 다다음 차시에서 키보드 입력을 통한 이동을 배워보시면
      좋을 것 같습니다.

  • @minsoungyu2472
    @minsoungyu2472 2 года назад

    시작할때 도형들은 미리 셋팅을 해놓으신건가요?

    • @goldmetal
      @goldmetal  2 года назад

      네 모두 미리 세팅해두었으며 우클릭 메뉴에서 3D Object로 가시면 만드실 수 있습니다.
      이 강좌에 사용된 도형은 Cube 와 Cylinder 입니다.

  • @hellosorppt
    @hellosorppt 2 года назад

    Slerp의 매개변수는 MoveTowards의 매개변수와 같은가요?

    • @goldmetal
      @goldmetal  2 года назад

      네 거의 비슷하며 마지막 숫자값만 살짝 다른 느낌입니다.

  • @tyler1612
    @tyler1612 4 года назад

    9:55에 SLerp 로 포물선을 그리면서 이동하는데 아랫쪽이나 좌우로 포물선을 그리면서 이동하게 할수있나요?

    • @goldmetal
      @goldmetal  4 года назад

      SLerp 내부에서 결정되는 방향이라 마음대로 바꿀 수는 없습니다.
      원하는대로 곡선이동을 하려면 배지어곡선을 사용해야 합니다.
      denisrizov.com/2016/06/02/bezier-curves-unity-package-included/

    • @tyler1612
      @tyler1612 4 года назад

      @@goldmetal 답변 감사드립니다

  • @kmj694288
    @kmj694288 Год назад

    항상 잘보고있습니다. 가끔 카메라 위치 조정을 인스펙터에서 해주고 플레이버튼을 누르면 조정했던 위치가 아닌 조정하기 전 위치로 이동되는데 어떻게하면좋을까요? 조정할때마다 저장을 해줘야 그 전꺼로 안돌아가나요?

    • @goldmetal
      @goldmetal  Год назад

      플레이 모드일 땐 장면에서 수동으로 조절한 수치는 저장되지 않습니다.
      수치 조정은 꼭 플레이 모드를 종료한 상태에서 해주세요.

    • @kmj694288
      @kmj694288 Год назад

      @@goldmetal 답변 감사드려용🤍

  • @hranlee8717
    @hranlee8717 4 года назад

    Slerp 구면선형 보간 이동은 호가 위쪽으로 포물선 따는 것과 아래쪽 으로 포물선 따라서 이동하는것은 따로 정하는 건가요??

    • @goldmetal
      @goldmetal  4 года назад

      내부적으로 계산을 해서 나옵니다.
      개발자가 마음대로 할 수 없는 단점 때문에
      포물선 이동을 구현할 때는 보통 다른 방식 (중력이용, 베지어 곡선)을 사용합니다.

  • @둡바룹
    @둡바룹 4 года назад

    올리신지 좀 된 영상이지만 최근 영상을 접해서 유니티를 공부하고 있습니다! 골드메탈님 정말 세세하고 쉬운 설명 감사해요ㅜㅜ
    다름이 아니라 강의 내용을 따라하고 있는데 스크립트 오류가 나서 실행이 안되네요..ㅜㅜ 왜 그럴까요..?
    (스크립트 클래스를 찾을 없다고어서 스크랩트 적용/추가가 안된다고 뜹니다.)
    그리고 본격적으로 유니티랑 3d쪽을 공부하고 싶은데 어떻게 해야 할까요? C# 언어 책을 사서 독학해도 도움이 되고 충분할까요?
    영상 계속 돌려보면서 강의 잘 듣고 있습니다ㅜ 정말 강의 제작해주셔서 감사합니다ㅜㅜㅜ❤❤❤

    • @goldmetal
      @goldmetal  4 года назад +1

      스크립트의 파일이름과 클래스 이름은 같아야 합니다.
      스크립트 여서서 맨 위에 :Monobehavior 앞에 있는 클래스 이름을 확인해주세요

  • @JaeRo1339
    @JaeRo1339 2 года назад

    메탈형님!! 영상 잘 챙겨보고 있습니다! 형님과 같은 코드로 값을 입력하고 실행을 하면 게임뷰화면에서 stutter현상이 일어납니다.. 혹시 어떻게 해결해야할까요? 그리고 게임뷰에서 뚝뚝끊기고, 또 속도도 같은 크기, 같은값으로 했는데도 너무 느리네요///

    • @goldmetal
      @goldmetal  2 года назад +1

      프레임이 끊긴다는 말씀일까요? Game 창 위쪽의 Stat을 누르시면 프레임율 FPS를 볼 수 있습니다.
      한번 게임 실행만으로 FPS가 현저히 감소하는지 확인하시고 만약 그렇다면 현재 컴퓨터 사양을 한번 점검해보셔야 할 것 같네요.

    • @JaeRo1339
      @JaeRo1339 2 года назад

      @@goldmetal 처음에 뚝끊긴다음 다시 원상태로 돌아옵니다.. 실행시켰을때의 프레임은 1인데 후에 다시 프레임은 500정도로 돌아와용... i5 10500, 32기가램인데 왜이런지 모르겠네요..

    • @goldmetal
      @goldmetal  2 года назад

      @@JaeRo1339 아 그건 에디터가 장면을 불러오면서 살짝 로딩이 있어서 그런겁니다.
      실제 게임으로 빌드하고나서는 이 현상은 없으니 참고하세요. 만약 제대로 보고싶으시다면 public bool isLive; 전역변수 하나 선언하시고 Update 맨 위에 if (!isLive) return; 추가해서 조건을 걸어줍니다. 그리고 게임 실행하고 나서 스크립트가 들어있는 오브젝트 선택하고 isLive 체크해보세요.

  • @창업하는경호
    @창업하는경호 4 года назад

    안녕하세요영상보는 중인데 저는 초기에 무브투와드 한게 대각선으로 움직여서 처음 큐브까지 위치로 이동 설정? 부분의 초기설정은 내용에 안보이는것 같아 어떻게하는건지 궁금합니다.

    • @goldmetal
      @goldmetal  4 года назад

      MoveToward() 함수의 첫번째 매개변수에 transform.position으로 현재 자신의 위치가 들어갔고, 두번째 목표지점은 위에서 Vector3 target;을 미리 선언해두고 사용하였습니다.
      1:38에서 Update() 함수 위쪽을 보시면 변수가 선언되고 초기화 되어있음을 확인하실 수 있습니다.

  • @Raikiri111
    @Raikiri111 Год назад

    스크립팅 하면서 나오는 저 효과는 어떻게 적용하는건가요? 궁금합니다~

    • @goldmetal
      @goldmetal  Год назад +1

      비주얼 스튜디오의 윗 메뉴 중 도구 > 확장 도구 > 온라인 > PowerMode 검색 > 설치 하시면 됩니다.

  • @한상진-g2b
    @한상진-g2b 3 года назад

    2D플랫포머 게임 만들면서 01.일정한 이동 MoveTowards() 이용해서 일정 구간을 왕복하는 플랫폼을 만들었습니다. 플랫폼이 한개일때는 문제가 없지만 이동하는 플랫폼이 여러개가 된다면 플랫폼 마다 타겟을 지정 해야하는데 하나하나 다 해줘야 하나요? 아니면 오브젝트 마다 타겟좌표를 지정할 방법이 있을까요?

    • @goldmetal
      @goldmetal  3 года назад

      동일한 타겟이면 스크립트내에서 for문을 통해 지정해줄 수 있지만
      각자 타겟이 다르면 지정해주셔야 할 것 같습니다.

    • @한상진-g2b
      @한상진-g2b 3 года назад

      @@goldmetal 헉 댓글달아주셔서 감사합니다!!항상 감사히 영상보구 있습니다.

  • @kimeric6275
    @kimeric6275 3 года назад

    물체를 순간이동시키는 방법은 없을까요???
    (알려주세요ㅠㅠ)
    옛날영상이라 안보실수는있겠지만

    • @goldmetal
      @goldmetal  3 года назад

      그냥 이동은 transform.position = new Vector3(1, 1, 1);

    • @kimeric6275
      @kimeric6275 3 года назад

      @@goldmetal 감사합니다

  • @버근가-q2r
    @버근가-q2r Год назад

    z좌표의 값이 transform.position과 target이 같아도 곡선이 수직으로만 그려지는 것이 아니라 수평이랑 섞여서 그려지는데,
    원래 위치(transform.position)과 목표위치(Vector target)외의 매개변수 혹은 함수 등으로 곡선 방향을 세부적으로 정할 수 있는 방법은 없나요?

    • @goldmetal
      @goldmetal  Год назад +1

      네 Slerp는 보정만해주는거라 구체적인 곡선을 지정할 수는 없습니다. 곡선이동이 필요하다면 시네머신의 Dooly Track 혹은 유니티 패키지의 Spline 혹은 코딩으로 만드는 배지어곡선을 사용하시면 됩니다.

    • @버근가-q2r
      @버근가-q2r Год назад +1

      @@goldmetal 감사합니다

  • @galsa_
    @galsa_ 2 года назад

    골드메탈님 코드나 값을 똑같이 했는데 영상과 이동속도가 다른데 이유가 뭔가요
    void Update()
    {
    //Vector3 vec = new Vector3(Input.GetAxisRaw("Horizontal"), Input.GetAxisRaw("Vertical"), 0);
    //transform.Translate(vec);
    //목표 지점으로 이동하는 방식
    //transform.position : 게임오브젝트의 절대 좌표를 나타낸다
    //1.MoveTowards : 등속이동 일정한 속도로 목표지점을 향해 이동한다
    //transform.position = Vector3.MoveTowards(현재위치,목표위치,속도)
    //transform.position = Vector3.MoveTowards(transform.position, target, 1f);
    //2.SmoothDamp : 부드러운 감속이동 매개변수 속도에 반비례하여 속도증가
    //transform.position = Vector3.SmoothDamp(현재위치,목표위치,참조 속도,이동시간)
    Vector3 velo = Vector3.zero;
    //transform.position = Vector3.SmoothDamp(transform.position, target,ref velo ,0.1f);
    //3.Lerp : 선형 보간,SmoothDamp보다 감속시간이 김
    //transform.position = Vector3.Lerp(현재위치,목표위치,속도(최대값1))
    //SmoothDamp와 비슷하지만 쓰는 형식은 MoveTowards와 비슷하다
    //transform.position = Vector3.Lerp(transform.position, target, 0.05f);
    //4.SLerp (구면 선형 보간) 호를 그리며 이동
    //transform.position = Vector3.Slerp(transform.position, target, 0.1f);
    }

    • @goldmetal
      @goldmetal  2 года назад

      프레임 FPS 가 다르면 속도가 차이가 있을 수 있습니다.
      이것을 보정하기 위해 Time.deltaTime를 사용하는데요 이 내용은 바로 다음 강좌 B8에서 다루고 있습니다.
      ruclips.net/video/QGFaA3WYAwk/видео.html

  • @숲튽훈-d9t
    @숲튽훈-d9t 3 года назад

    혹시 현재 위치에서 x값 또는 y값 또는 z값만 가져오려면 어떻게 해야하나요?
    transform.position은 x, y, z값 전체를 가져오는거 같았는데 그 중 특정값만 가져오려면 어떻게 해야하는지 궁금해서요

    • @goldmetal
      @goldmetal  3 года назад

      그 벡터에서 한번 더 들어가시면 됩니다.
      transform.position.x 이런 식으로요

  • @jjj809
    @jjj809 2 года назад

    골드메탈님 플레이 할때 오브젝트가 버벅거리면서 렉이 잠깐 걸리는데 컴퓨터 사향 문제일까요?

    • @goldmetal
      @goldmetal  2 года назад

      보통 플레이 버튼 누르면 장면을 불러와야하므로 약간의 딜레이가 있습니다. 크게 문제될건 아니니 걱정하실 필요는 없습니다.

  • @yeonjunjung1431
    @yeonjunjung1431 2 года назад

    게임 프로그래밍 공부하는 취준생입니다. transform.Translate()는 해당 오브젝트를 Vector3에 넣은 좌표값만큼 이동시키고, transform.position()은 Vector3에 해당하는 좌표로 이동시킨다고 보면 되나요?

    • @goldmetal
      @goldmetal  2 года назад

      네 정확합니다.

  • @초코맛누룽지
    @초코맛누룽지 4 года назад

    굿

  • @aa6350
    @aa6350 4 года назад

    02.SmoothDamp()에서 참조속도라는 것을 쉽게 풀어서 설명해주실수있나요?

    • @abzc1281
      @abzc1281 4 года назад +3

      docs.unity3d.com/ScriptReference/Vector3.SmoothDamp.html
      이거 참조하시면 이해하기 쉬우실거 같네요
      위 사이트의 공식문서에는 현재속도라고 명시되어 있습니다.

    • @aa6350
      @aa6350 4 года назад

      @@abzc1281감사합니다!!!!

  • @spardra923
    @spardra923 4 года назад

    slerp는 vector3여야지 작동되는건가요?
    vector3는 되는데
    vertor2로하면 오류가 나서

    • @goldmetal
      @goldmetal  4 года назад

      해당 영상은 Vector3의 함수라서 그렇습니다.
      Vector2. 으로 시작하시고 함수를 호출하시면 가능합니다.

    • @spardra923
      @spardra923 4 года назад

      @@goldmetal
      늦은시간인데도 답변 감사합니다.
      해결이 잘 안되서 그러는데
      Vector2 target = new vector2(8, 1);
      transform.position=Vector2.x(transform.posion, target, 0.1f);
      위에 x부분에 Slerp넣으면
      'Vector2'에는 'Slerp'에 대한 정의가 포함되어 있지 않습니다.
      라고 오류가 나는데 vector2에는 Slerp라는 함수가 없는걸까요?

  • @미진김-m8x
    @미진김-m8x Год назад

    구면 선형 이동하면 y축?으로 포물선을 그리는데 x축이나z축으로 포물선을 그리고 싶은데 어떻게 하나요

    • @goldmetal
      @goldmetal  Год назад

      사실 이것만으로는 어렵고 베지어곡선을 사용하면 원하는 곡선 형태를 그릴 수 있습니다.
      yoonstone-games.tistory.com/110

  • @권민주-o8l
    @권민주-o8l 2 года назад

    전 c#이 아니고 걍 #으로만 나오죠? 비쥬얼 스튜디오 깔았는데
    C#스크립트 누르면 #모양만 나와요연결이 않된건가요?

    • @goldmetal
      @goldmetal  2 года назад

      아이콘만 그런 모양입니다. 잘 나오는 것이니 진행하셔도 됩니다.

  • @rebze
    @rebze 3 года назад

    혹시 영상속 유니티 버전은 무슨 버전인지 질문드려도될까요?...ㅜ

    • @goldmetal
      @goldmetal  3 года назад

      해당 버전은 2018.3 버전으로 좀 오래되었습니다.
      가급적 안정된 2019.4.19f LTS 으로 시작하신걸 추천드려요

  • @이기은-x1r
    @이기은-x1r 4 года назад

    이걸 순차적으로 진행하려면 그냥 로직밑에 로직 한번더적으면돼나요?

    • @goldmetal
      @goldmetal  4 года назад

      그냥 적으면 모든 연산이 합쳐진 결과로 한 방향만 진행하게 됩니다.
      순자적으로 하려면 이동할 때까지 시간을 주어야 하므로
      딜레이를 줄 수 있는 코루틴에서 작성하셔야 합니다.
      코루틴에 대한 내용은 아래 링크로 공유해드릴께요
      m.blog.naver.com/PostView.nhn?blogId=pxkey&logNo=221296053953&proxyReferer=https:%2F%2Fwww.google.com%2F

  • @현우이-q8v
    @현우이-q8v 3 года назад

    명령어 칠때 저렇게 어떻게 바꾸어요? 실수로 명령어 치는곳을 메모장으로 바꾸었는데 다시 바꿀 방법은 없나요?

    • @goldmetal
      @goldmetal  3 года назад

      유니티 디버그 D01 영상 참고하시면 좋겠습니다.
      ruclips.net/video/-j5LKpFj4NQ/видео.html

  • @김시우-b8w
    @김시우-b8w 4 года назад

    강의 너무 재밌게 잘보고 있습니다.
    제 Visual Studio에서는 Vector3를 쓰면 BitVector32로 자동으로 단어가 바꾸네요... 그래서 Vector3을 쓰고 마우스를 떼서 다른곳을 클릭했다가 쓰면 그대로 입력되어요. 너무 불편하네요.. 어떻게 하면 그냥 Vector3 쓰는게 가능할까요 ?

    • @goldmetal
      @goldmetal  4 года назад

      유니티 위쪽 메뉴 Edit > Preferences > External Tools로 가셔서
      비주얼 스튜디오가 잘 연결되어 있는지 확인해보세요.

    • @김시우-b8w
      @김시우-b8w 4 года назад

      @@goldmetal와우~ 해결됐어요!! 감사합니다. 자동으로 VisualStudio가 열리길래 그쪽은 문제 없는 줄 알았는데.. Visual Studio 2019로 설정하니 잘 되네요.

  • @서우에요김
    @서우에요김 Год назад

    Slerp 구면 선형 보간 이동에서 호가 옆으로 누워서 가는데 버그인가요?? 분명 저번엔 됬었는데 이번엔 안되네요

    • @goldmetal
      @goldmetal  Год назад +1

      Slerp는 어디까지나 보정 알고리즘이라서 때에 따라 원하는 모습이 나오지 않을 수 있습니다.
      제대로 구형 이동을 원하신다면 베지어 곡선이나 유니티에서 제공하는 Dolly Track, 혹은 Spline을 사용하시면 됩니다.

    • @서우에요김
      @서우에요김 Год назад +1

      @@goldmetal 답변 감사합니다!

  • @정기찬-l6j
    @정기찬-l6j 5 лет назад

    오브젝트를 다른오브젝트 위치로 이동시키려면 어떻게 해야하는건가요??..여러가지 정보들을 뒤져봤지만 잘 모르겠습니다 ㅠㅠ

    • @goldmetal
      @goldmetal  5 лет назад

      이 영상의 내용에서 목표지점 벡터3을 다른 오브젝트의 위치로 놓으시면 됩니다. 가장 쉬운건 전역변수로 public Transform obj; 선언하시고 인스펙터창(컴포넌트들이 나오는 창)에서 보면 None이라고 빈칸이 뜨는데 거기에 다른 오브젝트를 드래그해서 넣으시면 바로 접근 가능힙니다.

    • @정기찬-l6j
      @정기찬-l6j 5 лет назад

      감사합니다! 그런데.. 오브젝트가 아무런 반응이 없네요..혹시 변수 선언 외에 또다른 스크립트가 필요한건가요??

    • @정기찬-l6j
      @정기찬-l6j 5 лет назад

      아아 아니다 해결했어요 정말 감사합니다!!

  • @richhein8333
    @richhein8333 4 года назад

    안녕하세요 강좌 잘 듣고 있습니다! 질문이 있는데요 저는 실행시켰을 때 smoothDamp랑 Lerp에도 조금씩 버벅거리면서 앞으로 나가고 마지막에만 부드럽게 나가는데 오류가 있는건지 제 노트북이 안좋아서 그런건지 모르겠네요... 항상 좋은 강의 감사합니다.

    • @goldmetal
      @goldmetal  4 года назад

      원래 유니티 플레이 시에 초기 몇 프레임은 버벅거릴 수 있습니다.

    • @richhein8333
      @richhein8333 4 года назад

      답변 감사합니다!

  • @젤롱잉
    @젤롱잉 4 года назад

    궁금한 것이 있어 댓글답니다!
    예시에는 정해진 백터 위치값 new Vector3(8, 1.5f, 0)로 이동만 가능하게 되어있는데,
    혹시 움직이는 오브젝트나 임의의 오브젝트 위치로 이동하기를 원한다면
    어떤 로직을 사용하여 만들어야할까요?
    처음에는 FindObjectOfType() 메서드를 이용하여 해당 스크립터가 있는 타겟의 트렌스폼 값을 불러와
    그쪽으로 이동시키려고 했지만, 트렌스폼 값을 백터값으로 변경할 수 없다는 오류가 뜨더라구요.
    조언을 주실 수 있으실까요?

    • @goldmetal
      @goldmetal  4 года назад +1

      트랜스폼의 값이 아니라 트랜스폼의 위치값을 넣어주시면 됩니다.
      targetObject.transform.position

  • @GoodLife5312
    @GoodLife5312 4 года назад

    7:27 책갈피

  • @조승엽-h5p
    @조승엽-h5p 3 года назад

    호를 그리면서 이동하는건 사이에 원을 타원처럼 비율조절하거나, 윗쪽 호가 아닌 아래쪽으로 그리면서 가는건 어떻게 하나요?

    • @goldmetal
      @goldmetal  3 года назад +1

      구면보간은 내부적으로 계산되는거라 디테일하게는 작업할 수 없습니다.
      곡선을 그래는 방법에는 베이저 곡선이 있는데 조금 어렵습니다.
      일단 이에 대해서는 아래 링크로 드릴께요
      rito15.github.io/posts/unity-study-bezier-curve/
      tonikat.tistory.com/10

    • @조승엽-h5p
      @조승엽-h5p 3 года назад +1

      @@goldmetal 감사합니다. 들어가봤는데 저한텐 어려워보이네요. 일단 기본을 익히고 여유가 넘칠때 할지 말지 선택사항으로 둬야할것 같아요.

  • @정원우-v3r
    @정원우-v3r 4 года назад

    안녕하세요~ 열심히 보고 있습니다! 근데, 게임할 떄, 첫 페이지에서 예를들어 START 버튼을 누르면 페이지가 바뀌는 것은 어떻게 하나요?

    • @goldmetal
      @goldmetal  4 года назад +1

      SceneManager.LoadScene("다음씬"); 을 가진 함수를
      버튼에서 OnClick 이벤트로 연결해주시면 됩니다.

    • @정원우-v3r
      @정원우-v3r 4 года назад +1

      매번 친절하게 도와주셔서 감사합니다

  • @조무래기-r3v
    @조무래기-r3v 4 года назад

    he referenced script on this Behaviour (Game Object 'Player') is missing! 이러한 오류가 뜨는데 어떻게 하죠?

    • @goldmetal
      @goldmetal  4 года назад

      Game Object 중간에 공백 없애주세요.

  • @시호-i3k
    @시호-i3k 2 года назад

    제가 Slerp할때는 Lerp랑 다른 게 없는데 왜그럴까요? (포물선이 아주 조오오금도 없어요)(저장도 하고 껐다가도 켜보고 지웠다가 다시써보기도 했어요)

    • @goldmetal
      @goldmetal  2 года назад

      Slerp는 내부에서 계산하는거라 결과가 다르게 나올 수 있습니다.
      목표지점 Vector3의 값을 약간 변경해보시면 어떨까 합니다.

  • @가물치-x5z
    @가물치-x5z 2 года назад

    선생님 예제가 작동을 하기는 하는데 Vector3가 왠지 색이 푸른색이 아니고 그대로 검은색입니다. 그리고 이동하면 오브젝트가 진동하다가 땅으로 푹 꺼져버립니다. 왜 그럴까요...? ㅜㅜ

    • @goldmetal
      @goldmetal  2 года назад

      일단 유니티와 스크립트 에디터를 연결해주셔야겠네요.
      유니티 디버그 D01 영상을 참고해주세요.
      ruclips.net/video/-j5LKpFj4NQ/видео.html
      이 영상에서는 물리적인 세팅을 하지 않아서 스크립트 대로 이동하니 참고 바랍니다.

  • @굳데이-o2f
    @굳데이-o2f 4 года назад

    안녕하세요? 같이 따라서 하는중
    Assets\Move.cs(9,5): error CS0104: 'Vector3' is an ambiguous reference between 'System.Numerics.Vector3' and 'UnityEngine.Vector3' 오류가 나와
    using System.Numerics;을 막고하니
    이번에는
    Assets\Move.cs(2,30): error CS0234: The type or namespace name 'Dataflow' does not exist in the namespace 'System.Threading.Tasks' (are you missing an assembly reference?)
    오류가 나네요...
    해결 방법이 없을까요

    • @goldmetal
      @goldmetal  4 года назад

      작성하신 스크립트 전부 여기에 붙여주세요. Ctrl + A하시면 전부 선택된답니다.

    • @굳데이-o2f
      @굳데이-o2f 4 года назад

      @@goldmetal
      // using System.Numerics; // Vector3이 UnityEngine에도 있어 충돌 일어나니 막는다
      using System.Threading.Tasks.Dataflow;
      using System.Collections;
      using System.Collections.Generic;
      using UnityEngine;
      public class Move : MonoBehaviour
      {
      Vector3 target = new Vector3(8, 1.5f, 0);
      void Update()
      {
      transform.position =
      Vector3.MoveTowards(transform.position, target, 2f); // 현재위치, 목표위치, 속도
      }
      }
      == 감사드립니다.
      첫번째 라인 // 없애고 실행하면 콘솔에 아래 에러가 나오 나오며
      Assets\Move.cs(9,5): error CS0104: 'Vector3' is an ambiguous reference between 'System.Numerics.Vector3' and 'UnityEngine.Vector3'
      첫번째라인을 //으로 막고 하면, 아래 에러가 나옵니다.
      Assets\Move.cs(2,30): error CS0234: The type or namespace name 'Dataflow' does not exist in the namespace 'System.Threading.Tasks' (are you missing an assembly reference?)

    • @goldmetal
      @goldmetal  4 года назад

      @@굳데이-o2f 두번째 줄 using System.Threading.Tasks.Dataflow; 이걸 지워주세요. 아예 첫번째 주석처리한것도 지워주시면 깔끔합니다.

    • @굳데이-o2f
      @굳데이-o2f 4 года назад

      @@goldmetal 답변 감사 드립니다
      고맙습니다

  • @익명-p8q
    @익명-p8q 3 года назад

    열심히 따라하고 있는 학생입니당... 근데 Slerp 구면 선형 보간이 Lerp처럼 이동하네요. 이거 뭐가 문제인 걸까요?

    • @goldmetal
      @goldmetal  3 года назад

      Slerp는 계산이 자기 멋대로라서 원하는 모양이 나오지 않을 수 있습니다.
      출발 지점의 높이를 올리거나 내려보기 혹은 목적지의 위치를 조금 옮기기를 해보세요.

  • @양지숙-o5e
    @양지숙-o5e 5 лет назад

    Vector3에 들어있는 함수라면 2d게임에 필요한 vector2는 이런 움직임을 구사할 수 없나요,,,?

    • @goldmetal
      @goldmetal  5 лет назад +1

      tranform은 항상 벡터3 입니다. 때문에 본 강좌를 그대로 2D에 적용하실 수 있어요

    • @양지숙-o5e
      @양지숙-o5e 5 лет назад

      @@goldmetal 아하! 감사합니다

  • @joonglipk2009
    @joonglipk2009 3 года назад

    혹시 Update문 밖에서 오브젝트를 이동시킬 수 있는 방법이 있을까요?

    • @goldmetal
      @goldmetal  3 года назад

      단순히 코드만 벗어나고 싶으시다면 함수를 사용하시면 됩니다.
      void Update() { Move() };
      void Move() { //이동로직... };

  • @Pqlamzwoskxn
    @Pqlamzwoskxn 4 года назад

    혹시 등가속도 운동... 도 있나요?

    • @goldmetal
      @goldmetal  4 года назад

      등가속은 보통 직접 position에 증가된 Vector3 값을 계속 넣는 식으로 작성합니다.
      Vector3 curPos = transform.position;
      Vector3 nextPos = curPos + Vector3.up;
      transform.position = nextPos;

  • @LEE-cb1ci
    @LEE-cb1ci 5 лет назад

    제가 리듬게임 만들고 있는데 2d가 아닌 3d 로 만드려고 하는데 오브젝트 객체 히트라인쪽으로 자동생성 하는 방법이랑 오게 하는방법 좀 알려주세요 ㅠㅠ

    • @goldmetal
      @goldmetal  5 лет назад +1

      이런 포괄적인 질문은 여기에서보다는 유니티 네이버 카페에서 질문하시면 더 좋은 답변 들으실 수 있을거에요.

    • @LEE-cb1ci
      @LEE-cb1ci 5 лет назад

      답변감사해요

  • @어쩌면화요일
    @어쩌면화요일 5 лет назад

    fps 상관없이 같은 속도로 움직일려면 델타타임을 곱하면 되는건가요?
    아니면 원래 같은 속도인가요?

    • @goldmetal
      @goldmetal  5 лет назад

      Vector3.MoveTowards(transform.position, destPosition, 2.0f * Time.deltaTime);
      이런식으로 속도 파라메터에 델타 타임을 곱해주시면 됩니다.
      델타 타임은 따로 나눠서 설명하려고 이번 두 편에서는 생략한 상태에요.

    • @어쩌면화요일
      @어쩌면화요일 5 лет назад

      아 감사합니다!

  • @브론즈와실버
    @브론즈와실버 4 года назад

    메탈님 혹시 x,y,z 자리 에다가 소수점을 넣으면 어류가 발생 하던데 이거 어떻게하면 고칠 수 있을까여..? 과제가 있어서 내일 오후까지거든요... 원래 내일 하려했는데 오늘 빨리 끝내려구여...ㅠㅠ 부탁드립니당..!!

    • @goldmetal
      @goldmetal  4 года назад

      소수점을 사용하실 땐 뒤에 f를 붙여주세요. ( 1.7f )

    • @브론즈와실버
      @브론즈와실버 4 года назад

      @@goldmetal메탈님.. 저가 뒤에 f를 넣어서 해봤는데요 유니티 자체가 아예 멈춰버려서요... 다른 앱들은 다 클릭이 되는데 유니티만 안돼요..ㅠㅠ 이거 유니티 문젠가요..?

    • @goldmetal
      @goldmetal  4 года назад

      @@브론즈와실버 혹시 while문 쓰셨나요? 코드.전체를 여기에 붙여봐주세요

    • @브론즈와실버
      @브론즈와실버 4 года назад

      @@goldmetal
      using System;
      using System.Collections;
      using System.Collections.Generic;
      using UnityEngine;
      public class NewBehaviourScript : MonoBehaviour
      {
      Vector3 Target = new Vector3(- 0.5f, 0.4f,- 0.9f);
      void Updata()
      {
      //1.Slerp (구면 선형 보간 이동)
      transform.position =
      Vector3.Slerp(transform.position
      , Target, 0.05f);
      }
      }
      이렇게 썼는데 뭐가 문젠지 봐주 실 수 있나요..? 영상 맞지막에 있던 구면 선형보간 이동을 했거든요...ㅠㅠ

    • @goldmetal
      @goldmetal  4 года назад

      @@브론즈와실버 void Update() 입니다. 스펠링과 대소문자 정확하게 작성해주세요

  • @TheCFG_
    @TheCFG_ 4 года назад

    SmoothDamp, MoveTowards 모두 실행 시킴과 동시에 뿅! 하고 사라집니다. 어떻게 해야 될까요?

    • @goldmetal
      @goldmetal  4 года назад

      하이어라키 (계층구조)에 사라진 오브젝트 이름을 더블클릭해보세요.
      Scene에서 비춰주면서 인스펙터 창에 위치가 보일겁니다.
      위츠를너무 크게 잡은건지, 속도가 너무 빠른건지 확인해볼 필요가 있겠네요

  • @양파-w3t
    @양파-w3t Год назад

    극초보인데 실행할때마다 Scence에서 Game으로 화면전환 되는데 불편하네요 Game은 뭐 나오는것도 없고 어케하징,,

    • @goldmetal
      @goldmetal  Год назад

      Game은 Scene 혹은 Hiararcy에서 Main Caemra가 비추는 모습 그대로를 보여주는 게임뷰 입니다.
      Main Camera를 이동시키고 회전하면서 오브젝트를 비추면 Game에도 나타나니 참고 바랍니다.
      각 위도운 이름을 마우스로 잡고 드래그하시면 자유롭게 창을 배치하실 수도 있습니다.

    • @양파-w3t
      @양파-w3t Год назад

      @@goldmetal 감사합니다 선생님 영상만 열심히 따라하는 중입니다 완강해보겠습니다.

  • @이재하-h7k
    @이재하-h7k 4 года назад

    Slerp 부분에서 스크립트 작성은 동일하게 했는데 저는 오른쪽으로 호를 그리며 이동합니다.
    제가 버전을 2019.3.5f1을 사용했는데 이게 문제인건가요?

    • @goldmetal
      @goldmetal  4 года назад

      구면 보간은 내부 계산에 의해 그려지는 원이 그때그때 다를 수 있습니다.
      목표점을 다르게 잡으면 반대로 그려나갈 수 있어요.
      구면보간은 이런 점 때문에 이동보다는 회전 (Quaternion.Slerp)할 때
      많이 사용됩니다.

  • @김견호-k4l
    @김견호-k4l 2 года назад

    저 선생님, Update 함수가 초 당 500번정도 돌아가고 있는데 정상인 건가요? 이것 때문인지 이동도 제대로 안되네요

    • @김견호-k4l
      @김견호-k4l 2 года назад

      델타 타임을 곱하면 될까요?

    • @goldmetal
      @goldmetal  2 года назад

      Game 창의 Stat버튼을 켜보시면 초당 프레임이 보입니다.
      프레임을 설정해두지 않으면 최대 프레임이 나오니까 걱정하실 필요는 없습니다.
      그래도 안심하고 사용하시려면 targetFrame을 정해주세요.
      docs.unity3d.com/ScriptReference/Application-targetFrameRate.html

    • @김견호-k4l
      @김견호-k4l 2 года назад

      @@goldmetal감사합니다

  • @715-s2q
    @715-s2q 4 года назад

    Slerp를 쓰는데 그냥 선형모양으로 이동하네요 영상 내에서 좌표빼곤 똑같은데 멀어도 가까워도 직선으로 가네요 뭔 문제인지 모르겠습니다

    • @goldmetal
      @goldmetal  4 года назад

      Slerp는 시작점, 목표점에 따라 자동으로 원을 그리고 거기에 맞추어 호 모양을 이동합니다. 내부적으로 계산되기에 개발자가 의도하지 않는대로 갈 수 있어요.

    • @715-s2q
      @715-s2q 4 года назад

      @@goldmetal 감사합니다 ㅜ ㅜ 방금 y축 좌표를 바꿔보니 또 원으로 가네요 강좌 너무 잘보고있습니다 선생님

  • @김민혁-j5v3j
    @김민혁-j5v3j 3 года назад

    골드메탈님 SmoothDamp 함수를 사용하고 실행하면 약 0.5초 정도
    끊김 현상이 있습니다.
    이때 스탯창을 보면 평균 3000대를 넘던 프레임이 400대로 떨어지고, cpu 가용률이 100%로 치솟는데 이럴때는 어떻게 해야할까요?

    • @goldmetal
      @goldmetal  3 года назад

      첫 실행에는 로딩으로 인한 지연이 살짝 있습니다.
      SmoothDamp에 의한게 아니니 걱정 하시고
      if(Input.GetButton("Jump")) 를 추가해서 게임 실행 후
      스페이스바를 누르면 이동하도록 하면 더 확실하게 보실 수 있습니다.

    • @김민혁-j5v3j
      @김민혁-j5v3j 3 года назад

      @@goldmetal 감사합니다!

  • @나태함
    @나태함 5 лет назад

    근데 벡터 는 방향을 가지고 있는 데 도착위치에 쓸때는 좌표가 되는건가요?

  • @Lim_S_H
    @Lim_S_H 3 года назад

    SmoothDamp를 썼는데 왜 1만큼의 거리를 텔포하고 출발하는거지... 처음 출발할때 속도가 너무 빨라서그렇게 보이는건가

    • @goldmetal
      @goldmetal  3 года назад

      첫 실행할때 약간의 로딩시간이 있는데 그 시간만큼 이미 움직여서 그렇습니다.
      컴퓨터 환경, 성능에 따른 차이라서 크게 신경쓰실 필요는 없습니다.

  • @강지훈-j3z
    @강지훈-j3z 3 года назад

    물체를 이동시킬때 순차적으로 1->2->3지점을 거쳐서 가고싶습니다. 그런데 Update()에 Vector3.Lerp를 for문을 돌려서 넣었더니 2지점을 안거치고 계속 3지점으로 바로갑니다. ㅜㅠㅠ 혹시 어떻게 해결해야하는지 알 수 있을까요??ㅠㅠ

    • @goldmetal
      @goldmetal  3 года назад +1

      Vector3.Lerp를 for문에 넣어서 돌리시면 안됩니다.
      Update 자체가 1초에 60번이나 호출되기 때문이죠.
      이럴 때 사용하는 것이 바로 코루틴 (Coroutine) 입니다.
      2번 지점까지 도달했다는 if문을 쓰고 3번으로 이동하는 Lerp를 넣으면 될 것 같네요.
      아래 코루틴 사용법 링크를 달아드리겠습니다.
      m.blog.naver.com/PostView.nhn?blogId=pxkey&logNo=221296053953&proxyReferer=https:%2F%2Fwww.google.com%2F

    • @강지훈-j3z
      @강지훈-j3z 3 года назад

      @@goldmetal 감사합니다!! 한가지만 더 물어봐도 될까요?? 한지점을 거쳐가는거는 가능했는데 여러지점을 거쳐간다고하면 조건을 계속 넣어야하나요 ㅠㅠ 아니면 혹시 다른 방법이 있나요 :)

    • @goldmetal
      @goldmetal  3 года назад

      @@강지훈-j3z 이 때부터는 목표지점과 목표번호를 배열변수로 저장해두는게 좋겠네요. 목표번호로 목표배열에 접근해서 지점에 도달하면 번호를 올려서 다음지점으로 이동하게 하는겁니다. 번호가 목표배열 길이가 되면 다시 0으로 되돌려서 빙글빙글 돌게할 수도 있구요.

    • @강지훈-j3z
      @강지훈-j3z 3 года назад

      @@goldmetal 감사합니다!! 해결햇습니다!!

  • @진진자라지리지리-f4z
    @진진자라지리지리-f4z 4 года назад

    Vector3 velo = Vector3.zero는 뭔가요?

  • @reasure3
    @reasure3 5 лет назад

    용어가 조금 어렵긴 하네요 ㅎㅎ (선형 보간같은거)
    그냥 움직이는 모양?에 대한 용어라고 생각하면 될려나요?

    • @goldmetal
      @goldmetal  5 лет назад

      수학용어라고 생각하시면 됩니다.
      영상 설명에 적어둔 추가 정보 링크 타시면 상세하게 보실 수 있어요.

    • @reasure3
      @reasure3 5 лет назад

      @@goldmetal 앗, 지금 예제 링크밖에 없네요.

    • @goldmetal
      @goldmetal  5 лет назад

      @@reasure3 에고, 지금 업데이트 했어요.
      blog.naver.com/gold_metal/221452400729

    • @reasure3
      @reasure3 5 лет назад

      @@goldmetal 아, 감사합니다! ㅎㅎ

  • @bbotongryung
    @bbotongryung 4 года назад

    Vector3를 쓰는데 자꾸 'Vector3'은(는) 'System.Numerics.Vector3' 및 'UnityEngine.Vector3' 사이에 모호한 참조입니다. 라고 오류가 나요 이게 코드가 틀린거 같지는 않은게 어떨때는 되다가 다시 다른코드 입력하려고 하면 이렇게 오류가 나는데 어떻게 해야할까요

    • @goldmetal
      @goldmetal  4 года назад

      맨 위에 using System.Numeric; 있다면 삭제해주세요.
      using Vector3 = UnityEngine.Vector3; 까지 하신다면 물어보는게 없어질 겁니다.

    • @bbotongryung
      @bbotongryung 4 года назад

      @@goldmetal 삭제하니까 작동하네요 빠른 답변 감사합니다!

  • @warpirecords3767
    @warpirecords3767 4 года назад

    play 버튼을 누르면 transform.position(0,0,0) 인 물체가 갑자기 (1.3,1.3)정도 위치로 텔레포트 했다가 target 지점으로 가는데 왜이러는걸까요?

    • @goldmetal
      @goldmetal  4 года назад

      어느 방식으로 구현하셨는지 모르겠지만
      이동함수(Lerp, SLerp)의 경우 설정된 시간이 너무 짧으면 그렇게 보일 수 있습니다.

  • @고추-d1i
    @고추-d1i 5 лет назад

    Slerp을 쓰는데 반대방향으로 돌아요.. 위가 아니라 아래쪽으로 도는데.. 왜 이런 걸까요?

    • @goldmetal
      @goldmetal  5 лет назад

      X축 Z축 위치에 따라서 Y축이 달라질 수 있습니다. 이는 구면 선형 보간이라는 수학 공식에 따라 결정되니 참고만 하세요.

  • @주말만세
    @주말만세 5 лет назад

    이걸로 마우스 클릭한 곳으로 가게 만들수 있어요?

    • @goldmetal
      @goldmetal  5 лет назад

      네, 대신 마우스 포인트 위치를 월드위치로 변환해주는 로직이 필요합니다.
      Camera.main.ScreenToWorldPoint(Input.mousePosition);