<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>쉽게 배우는 SW 프로그래밍</title>
    <link>https://panpro.tistory.com/</link>
    <description>IT이야기, 프로그래밍 이야기, C, C++, C#, Delphi, Java 등 컴퓨터 이야기,
아두이노, 라즈베리파이, 스크래치, 자마린(Xamarin), MS maui, 언리얼엔진</description>
    <language>ko</language>
    <pubDate>Tue, 23 Jun 2026 18:39:51 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>panpro</managingEditor>
    <image>
      <title>쉽게 배우는 SW 프로그래밍</title>
      <url>https://t1.daumcdn.net/cfile/tistory/1656F43F4E86F81816</url>
      <link>https://panpro.tistory.com</link>
    </image>
    <item>
      <title>언리얼엔진4 C++ 강좌 16 [쥐를잡자 찍찍찍-09] 소리 넣고 최종 완성</title>
      <link>https://panpro.tistory.com/477</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;unreal_title-009.png&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cChTIw/btsCX35milC/TSpzrfNSnqqpxg267rK0Kk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cChTIw/btsCX35milC/TSpzrfNSnqqpxg267rK0Kk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cChTIw/btsCX35milC/TSpzrfNSnqqpxg267rK0Kk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcChTIw%2FbtsCX35milC%2FTSpzrfNSnqqpxg267rK0Kk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1920&quot; height=&quot;1080&quot; data-filename=&quot;unreal_title-009.png&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;소리를 넣고 이제 마무리 합니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;MC는 &quot;한마리&quot;, &quot;두마리&quot;, &quot;세마리&quot; ... &quot;아홉마리&quot; 까지 소리를 내고,&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;플레이어는 &quot;잡았다&quot;, &quot;놓쳤다&quot;, &quot;만세&quot; 라고 소리를 냅니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;소리를 2가지 방법으로 내봅니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;플레이어는 각 플레이어마다 소리를 다르게 내야 하기 때문에 5명의 플레이어가 각 플레이어마다 에디터에서 각 잡았다 놓쳤다 만세 마다 어떤 소리를 낼 지 설정할 수 있도록 했고,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;MC는 한 명 밖에 없기 때문에 그냥 프로젝트에서 소리를 찾아 바로 재생을 해 봅니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://youtu.be/ers0DW-IDgE&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://youtu.be/ers0DW-IDgE&lt;/a&gt;&lt;/p&gt;
&lt;figure data-ke-type=&quot;video&quot; data-ke-style=&quot;alignCenter&quot; data-video-host=&quot;youtube&quot; data-video-url=&quot;https://www.youtube.com/watch?v=ers0DW-IDgE&quot; data-video-thumbnail=&quot;https://scrap.kakaocdn.net/dn/c8F26K/hyUTzG4IDC/FWZgZvaK0GDtTtdG6yy66K/img.jpg?width=1280&amp;amp;height=720&amp;amp;face=0_0_1280_720&quot; data-video-width=&quot;860&quot; data-video-height=&quot;484&quot; data-video-origin-width=&quot;860&quot; data-video-origin-height=&quot;484&quot; data-ke-mobilestyle=&quot;widthContent&quot; data-video-title=&quot;언리얼엔진4 C++ 강좌 16 [쥐를잡자 찍찍찍-09] 소리 넣고 최종 완성&quot; data-original-url=&quot;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/ers0DW-IDgE&quot; width=&quot;860&quot; height=&quot;484&quot; frameborder=&quot;&quot; allowfullscreen=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;figcaption style=&quot;display: none;&quot;&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>프로그래밍/언리얼엔진</category>
      <author>panpro</author>
      <guid isPermaLink="true">https://panpro.tistory.com/477</guid>
      <comments>https://panpro.tistory.com/477#entry477comment</comments>
      <pubDate>Sun, 31 Dec 2023 22:04:30 +0900</pubDate>
    </item>
    <item>
      <title>언리얼엔진4 C++ 강좌 15 [쥐를잡자 찍찍찍-08] 완성하기</title>
      <link>https://panpro.tistory.com/476</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;unreal_title-008.png&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dBg50q/btsCP5Dttjc/Ax3afpjeRu4p2Nam5qYVtk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dBg50q/btsCP5Dttjc/Ax3afpjeRu4p2Nam5qYVtk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dBg50q/btsCP5Dttjc/Ax3afpjeRu4p2Nam5qYVtk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdBg50q%2FbtsCP5Dttjc%2FAx3afpjeRu4p2Nam5qYVtk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1920&quot; height=&quot;1080&quot; data-filename=&quot;unreal_title-008.png&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;플레이어를 5명으로 늘립니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;각각의 플레이어들을 MC가 알도록 하기 위해 나머지 4명의 플레이어도 UPROPERTY를 이용해 에디터에서 선택할 수 잇도록 해줬습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 쥐를 전부 다 잡은 경우 만세하기 전에 약간의 시간을 둔 후에 만세를 하도록 수정했습니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이것으로 쥐를 잡자 찍찍찍의 전체 흐름 코딩은 완성했습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://youtu.be/3D91Jl7Pl-k&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://youtu.be/3D91Jl7Pl-k&lt;/a&gt;&lt;/p&gt;
&lt;figure data-ke-type=&quot;video&quot; data-ke-style=&quot;alignCenter&quot; data-video-host=&quot;youtube&quot; data-video-url=&quot;https://www.youtube.com/watch?v=3D91Jl7Pl-k&quot; data-video-thumbnail=&quot;https://scrap.kakaocdn.net/dn/bfgKd7/hyUXJOyT1w/7JiF0RmKvQOTlXIkJENYuk/img.jpg?width=1280&amp;amp;height=720&amp;amp;face=0_0_1280_720&quot; data-video-width=&quot;860&quot; data-video-height=&quot;484&quot; data-video-origin-width=&quot;860&quot; data-video-origin-height=&quot;484&quot; data-ke-mobilestyle=&quot;widthContent&quot; data-video-title=&quot;언리얼엔진4 C++ 강좌 15 [쥐를잡자 찍찍찍-08] 완성하기&quot; data-original-url=&quot;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/3D91Jl7Pl-k&quot; width=&quot;860&quot; height=&quot;484&quot; frameborder=&quot;&quot; allowfullscreen=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;figcaption style=&quot;display: none;&quot;&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>프로그래밍/언리얼엔진</category>
      <author>panpro</author>
      <guid isPermaLink="true">https://panpro.tistory.com/476</guid>
      <comments>https://panpro.tistory.com/476#entry476comment</comments>
      <pubDate>Sat, 30 Dec 2023 15:24:54 +0900</pubDate>
    </item>
    <item>
      <title>언리얼엔진4 C++ 강좌 14 [쥐를잡자 찍찍찍-07] 잡았다 놓쳤다 선택하면 이벤트 발생시키기</title>
      <link>https://panpro.tistory.com/475</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;unreal_title-007.png&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bdmgxR/btsCQ3YT5oa/xGxbCaRUlderomcxhwbqRk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bdmgxR/btsCQ3YT5oa/xGxbCaRUlderomcxhwbqRk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bdmgxR/btsCQ3YT5oa/xGxbCaRUlderomcxhwbqRk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbdmgxR%2FbtsCQ3YT5oa%2FxGxbCaRUlderomcxhwbqRk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1920&quot; height=&quot;1080&quot; data-filename=&quot;unreal_title-007.png&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;플레이어가 자기 순서가 되어 잡았다 혹은 놓쳤다를 선택하면 그 결과를 MC에게 알려줘야 합니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 방법으로 우리는 MC에게 직접 알려주지 않고 이벤트를 발생시킵니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;MC에게 직접 알려주려면 Player 액터가 MC를 알아야 하기 때문에 그런 설계상의 문제를 만들지 않기 위해 이벤트를 발생시킵니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;MC에서는 아래와 같이 player에서 발생하는 이벤트를 받게 됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;player0-&amp;gt;OnDecided().AddUObject(this, &amp;amp;AMC::OnPlayerDecidedEvent);&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://youtu.be/PFiPzeiz5qc&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://youtu.be/PFiPzeiz5qc&lt;/a&gt;&lt;/p&gt;
&lt;figure data-ke-type=&quot;video&quot; data-ke-style=&quot;alignCenter&quot; data-video-host=&quot;youtube&quot; data-video-url=&quot;https://www.youtube.com/watch?v=PFiPzeiz5qc&quot; data-video-thumbnail=&quot;https://scrap.kakaocdn.net/dn/Djdpx/hyUTLAavmX/gjQ1eMCa7AYcryqLKZsB70/img.jpg?width=1280&amp;amp;height=720&amp;amp;face=0_0_1280_720&quot; data-video-width=&quot;860&quot; data-video-height=&quot;484&quot; data-video-origin-width=&quot;860&quot; data-video-origin-height=&quot;484&quot; data-ke-mobilestyle=&quot;widthContent&quot; data-video-title=&quot;언리얼엔진4 C++ 강좌 14 [쥐를잡자 찍찍찍-07] 잡았다 놓쳤다 선택하면 이벤트 발생시키기&quot; data-original-url=&quot;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/PFiPzeiz5qc&quot; width=&quot;860&quot; height=&quot;484&quot; frameborder=&quot;&quot; allowfullscreen=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;figcaption style=&quot;display: none;&quot;&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>프로그래밍/언리얼엔진</category>
      <author>panpro</author>
      <guid isPermaLink="true">https://panpro.tistory.com/475</guid>
      <comments>https://panpro.tistory.com/475#entry475comment</comments>
      <pubDate>Thu, 28 Dec 2023 21:59:14 +0900</pubDate>
    </item>
    <item>
      <title>언리얼엔진4 C++ 강좌 13 [쥐를잡자 찍찍찍-06] moveNext로 게임진행하다 내 순서가 되면 잡았다 놓쳤다 선택하기</title>
      <link>https://panpro.tistory.com/474</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;unreal_title-006.png&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bw58a4/btsCLr0q1iS/z41XiVElzNFkvK7jp8zQr0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bw58a4/btsCLr0q1iS/z41XiVElzNFkvK7jp8zQr0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bw58a4/btsCLr0q1iS/z41XiVElzNFkvK7jp8zQr0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbw58a4%2FbtsCLr0q1iS%2Fz41XiVElzNFkvK7jp8zQr0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1920&quot; height=&quot;1080&quot; data-filename=&quot;unreal_title-006.png&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;moveNext()함수로 게임을 진행합니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그러다 내 차례가 되면 잡았다를 할지 놓쳤다를 할지 결정합니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;FMath::RandRange(0, 1)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;의 결과로 0 ~ 1 까지의 난수를 받아, 0이면 잡았다, 1이면 놓쳤다로 생각하고 처리합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://youtu.be/RsEyPMEeElA&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://youtu.be/RsEyPMEeElA&lt;/a&gt;&lt;/p&gt;
&lt;figure data-ke-type=&quot;video&quot; data-ke-style=&quot;alignCenter&quot; data-video-host=&quot;youtube&quot; data-video-url=&quot;https://www.youtube.com/watch?v=RsEyPMEeElA&quot; data-video-thumbnail=&quot;https://scrap.kakaocdn.net/dn/AIfSc/hyUTIXnsQW/OTzXf1cOxyVnIauD5h29Fk/img.jpg?width=1280&amp;amp;height=720&amp;amp;face=0_0_1280_720&quot; data-video-width=&quot;860&quot; data-video-height=&quot;484&quot; data-video-origin-width=&quot;860&quot; data-video-origin-height=&quot;484&quot; data-ke-mobilestyle=&quot;widthContent&quot; data-video-title=&quot;언리얼엔진4 C++ 강좌 13 [쥐를잡자 찍찍찍-06] moveNext로 게임진행하다 내 순서가 되면 잡았다 놓쳤&quot; data-original-url=&quot;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/RsEyPMEeElA&quot; width=&quot;860&quot; height=&quot;484&quot; frameborder=&quot;&quot; allowfullscreen=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;figcaption style=&quot;display: none;&quot;&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>프로그래밍/언리얼엔진</category>
      <author>panpro</author>
      <guid isPermaLink="true">https://panpro.tistory.com/474</guid>
      <comments>https://panpro.tistory.com/474#entry474comment</comments>
      <pubDate>Wed, 27 Dec 2023 20:56:21 +0900</pubDate>
    </item>
    <item>
      <title>언리얼엔진4 C++ 강좌 12 [쥐를잡자 찍찍찍-05] 게임진행자 만들고 게임 진행하기</title>
      <link>https://panpro.tistory.com/473</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;unreal_title-005.png&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ct3g2d/btsCMx6z6Uf/VUPmgKM3g7EgclgzKCjBUk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ct3g2d/btsCMx6z6Uf/VUPmgKM3g7EgclgzKCjBUk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ct3g2d/btsCMx6z6Uf/VUPmgKM3g7EgclgzKCjBUk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fct3g2d%2FbtsCMx6z6Uf%2FVUPmgKM3g7EgclgzKCjBUk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1920&quot; height=&quot;1080&quot; data-filename=&quot;unreal_title-005.png&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;게임진행자인 MC 액터를 만들고, 게임을 초기화합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;게임초기화를 위해 initGame() 함수를 만들고 쥐의 수를 결정합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 informMouseCount() 함수를&amp;nbsp; 만들어 플레이어에게 쥐의 수를 알려줍니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://youtu.be/p7ohn5EGa9w&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://youtu.be/p7ohn5EGa9w&lt;/a&gt;&lt;/p&gt;
&lt;figure data-ke-type=&quot;video&quot; data-ke-style=&quot;alignCenter&quot; data-video-host=&quot;youtube&quot; data-video-url=&quot;https://www.youtube.com/watch?v=p7ohn5EGa9w&quot; data-video-thumbnail=&quot;https://scrap.kakaocdn.net/dn/rPYUj/hyUTDO02kE/eDku9AkwrLYbv2jTs2Y6KK/img.jpg?width=1280&amp;amp;height=720&amp;amp;face=0_0_1280_720&quot; data-video-width=&quot;860&quot; data-video-height=&quot;484&quot; data-video-origin-width=&quot;860&quot; data-video-origin-height=&quot;484&quot; data-ke-mobilestyle=&quot;widthContent&quot; data-video-title=&quot;언리얼엔진4 C++ 강좌 11 [쥐를잡자 찍찍찍-04] 포즈없애고 포즈잡기&quot; data-original-url=&quot;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/p7ohn5EGa9w&quot; width=&quot;860&quot; height=&quot;484&quot; frameborder=&quot;&quot; allowfullscreen=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;figcaption style=&quot;display: none;&quot;&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>프로그래밍/언리얼엔진</category>
      <category>C++</category>
      <category>강의</category>
      <category>강좌</category>
      <category>언리얼엔진</category>
      <category>쥐를잡자 찍찍찍</category>
      <author>panpro</author>
      <guid isPermaLink="true">https://panpro.tistory.com/473</guid>
      <comments>https://panpro.tistory.com/473#entry473comment</comments>
      <pubDate>Tue, 26 Dec 2023 23:02:16 +0900</pubDate>
    </item>
    <item>
      <title>언리얼엔진4 C++ 강좌 11 [쥐를잡자 찍찍찍-04] 포즈없애고 포즈잡기</title>
      <link>https://panpro.tistory.com/472</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;unreal_title-004.png&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dw4ZSN/btsCoHh0qJV/DOAoMQLR3Vu9Zll4ck2cOK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dw4ZSN/btsCoHh0qJV/DOAoMQLR3Vu9Zll4ck2cOK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dw4ZSN/btsCoHh0qJV/DOAoMQLR3Vu9Zll4ck2cOK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdw4ZSN%2FbtsCoHh0qJV%2FDOAoMQLR3Vu9Zll4ck2cOK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1920&quot; height=&quot;1080&quot; data-filename=&quot;unreal_title-004.png&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;모든 포즈를 없애는 removeAllPose() 함수를 만듭니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 nPose의 값이 0이면 잡았다, 1이면 놓쳤다. 2면 만세 포즈를 취하는 setPose() 함수를 만듭니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;setPose() 함수로 포즈를 잡은 후에는 약간의 시간이 지난 후에 포즈를 없애줘야 합니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게 하기 위해 앞시간에 배운 timer를 이용합니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://youtu.be/p7ohn5EGa9w&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://youtu.be/p7ohn5EGa9w&lt;/a&gt;&lt;/p&gt;
&lt;figure data-ke-type=&quot;video&quot; data-ke-style=&quot;alignCenter&quot; data-video-host=&quot;youtube&quot; data-video-url=&quot;https://www.youtube.com/watch?v=p7ohn5EGa9w&quot; data-video-thumbnail=&quot;https://scrap.kakaocdn.net/dn/g3Gpp/hyUPDBCiFb/Qeq3nIQ7d0WHhekm31Svgk/img.jpg?width=1280&amp;amp;height=720&amp;amp;face=0_0_1280_720&quot; data-video-width=&quot;860&quot; data-video-height=&quot;484&quot; data-video-origin-width=&quot;860&quot; data-video-origin-height=&quot;484&quot; data-ke-mobilestyle=&quot;widthContent&quot; data-video-title=&quot;언리얼엔진4 C++ 강좌 11 [쥐를잡자 찍찍찍-04] 포즈없애고 포즈잡기&quot; data-original-url=&quot;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/p7ohn5EGa9w&quot; width=&quot;860&quot; height=&quot;484&quot; frameborder=&quot;&quot; allowfullscreen=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;figcaption style=&quot;display: none;&quot;&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>프로그래밍/언리얼엔진</category>
      <author>panpro</author>
      <guid isPermaLink="true">https://panpro.tistory.com/472</guid>
      <comments>https://panpro.tistory.com/472#entry472comment</comments>
      <pubDate>Wed, 20 Dec 2023 21:03:05 +0900</pubDate>
    </item>
    <item>
      <title>언리얼엔진4 C++ 강좌 10 [쥐를잡자 찍찍찍-03] 타이머 사용법</title>
      <link>https://panpro.tistory.com/471</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;unreal_title-003.png&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cwEx4L/btsBC6vJRUb/FrNbxqlWVtM2uPSABGaCck/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cwEx4L/btsBC6vJRUb/FrNbxqlWVtM2uPSABGaCck/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cwEx4L/btsBC6vJRUb/FrNbxqlWVtM2uPSABGaCck/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcwEx4L%2FbtsBC6vJRUb%2FFrNbxqlWVtM2uPSABGaCck%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1920&quot; height=&quot;1080&quot; data-filename=&quot;unreal_title-003.png&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이번 시간에는 언리얼엔진 4에서 C++를 이용해 타이머 사용하는 방법을 알아봅니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;언리얼엔진 4에서 C++로 타이머를 사용하려면,&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;헤더파일에 FTimerHandle을 만들어줘야 합니다. 타이머가 여러 개 있을 때 각 타이머들을 구분하는데 사용됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;FTimerHandle&amp;nbsp;m_TestHandle;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 BeginPlay() 함수 내에서&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;GetWorldTimerManager().SetTimer(m_TestHandle,&amp;nbsp;this,&amp;nbsp;&amp;amp;AMyPlayer::OnTestTimer,&amp;nbsp;2.0f,&amp;nbsp;true);&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게 GetWorldTimerManager에게 타이머를 실행해 달라고 시킵니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;amp;AMyPlayer::OnTestTimer 는 타이머 이벤트를 처리하는 함수입니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;뒤에 2.0f는 2초마다 한번씩 실행하라는 뜻입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;뒤에 true는 계속 반복할지를 정하는 인자입니다. true면 계속 반복하고, false이면 한번만 실행합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://youtu.be/3kEmCaLacPg&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://youtu.be/3kEmCaLacPg&lt;/a&gt;&lt;/p&gt;
&lt;figure data-ke-type=&quot;video&quot; data-ke-style=&quot;alignCenter&quot; data-video-host=&quot;youtube&quot; data-video-url=&quot;https://www.youtube.com/watch?v=3kEmCaLacPg&quot; data-video-thumbnail=&quot;https://scrap.kakaocdn.net/dn/cqCcPy/hyUPF0vqVo/aLKgk9UpAkyPGu2dqIferk/img.jpg?width=1280&amp;amp;height=720&amp;amp;face=0_0_1280_720&quot; data-video-width=&quot;860&quot; data-video-height=&quot;484&quot; data-video-origin-width=&quot;860&quot; data-video-origin-height=&quot;484&quot; data-ke-mobilestyle=&quot;widthContent&quot; data-video-title=&quot;언리얼엔진4 C++ 강좌 10 [쥐를잡자 찍찍찍-03] 타이머 사용법&quot; data-original-url=&quot;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/3kEmCaLacPg&quot; width=&quot;860&quot; height=&quot;484&quot; frameborder=&quot;&quot; allowfullscreen=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;figcaption style=&quot;display: none;&quot;&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>프로그래밍/언리얼엔진</category>
      <author>panpro</author>
      <guid isPermaLink="true">https://panpro.tistory.com/471</guid>
      <comments>https://panpro.tistory.com/471#entry471comment</comments>
      <pubDate>Wed, 20 Dec 2023 20:53:02 +0900</pubDate>
    </item>
    <item>
      <title>언리얼엔진4 C++ 강좌 9 [쥐를잡자 찍찍찍-02] material 입히는 2가지 방법</title>
      <link>https://panpro.tistory.com/470</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;unreal_title-002.png&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c7MmBc/btsBq0bASK0/PyUUbgQmXmMmGgTnfhNdA1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c7MmBc/btsBq0bASK0/PyUUbgQmXmMmGgTnfhNdA1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c7MmBc/btsBq0bASK0/PyUUbgQmXmMmGgTnfhNdA1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc7MmBc%2FbtsBq0bASK0%2FPyUUbgQmXmMmGgTnfhNdA1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1920&quot; height=&quot;1080&quot; data-filename=&quot;unreal_title-002.png&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;material을 입히는 2가지 방법입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;첫 번째는 에디터에서 material을 받는 방법입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;헤더파일에,&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1701704301509&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;UPROPERTY(EdtiAnywhere)
UMaterial* BodyMaterial;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;와 같이 설정해 주면 에디터에서 material을 설정해 줄 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;310&quot; data-origin-height=&quot;500&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/p0TaL/btsBqCB1cHJ/Gxj5lKVk6DTeJvPcOoJ6sK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/p0TaL/btsBqCB1cHJ/Gxj5lKVk6DTeJvPcOoJ6sK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/p0TaL/btsBqCB1cHJ/Gxj5lKVk6DTeJvPcOoJ6sK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fp0TaL%2FbtsBqCB1cHJ%2FGxj5lKVk6DTeJvPcOoJ6sK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;310&quot; height=&quot;500&quot; data-origin-width=&quot;310&quot; data-origin-height=&quot;500&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게 에디터에서 material을 받을 수 있습니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게 해 놓으면 각 인스턴스마다 각각 다른 material을 쉽게 설정해 줄 수 있지만, 인스턴스의 수 만큼 설정해 주는 작업을 해야 합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래서 그냥 저 M_Player라는 이름의 material을 소스코드에서 찾아서 할당해 주는 방법도 쓸 수 있어야 합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;두 번째 방법은 이렇게 소스코드에서 material을 정해주는 방법입니다.&lt;/p&gt;
&lt;pre id=&quot;code_1701704580132&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;static ConstructorHelpers::FObjectFinder&amp;lt;UMaterial&amp;gt; M_Player(TEXT(&quot;Material'/Game/M_Player.M_Player'&quot;));
if (NULL != M_Player.Object)
{
	BodyMaterial = (UMaterial*)M_Player.Object;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게 하면 BodyMaterial에 M_Player 라는 이름의 재질이 연결됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 아래처럼 MeshComponent에 할당하면 됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;재질 할당은 BeginPlay() 함수에서 합니다.&lt;/p&gt;
&lt;pre id=&quot;code_1701704636827&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;pBodyMeshComp-&amp;gt;SetMaterial(0, BodyMaterial);&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://youtu.be/Owk1kx8OlTE&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://youtu.be/Owk1kx8OlTE&lt;/a&gt;&lt;/p&gt;
&lt;figure data-ke-type=&quot;video&quot; data-ke-style=&quot;alignCenter&quot; data-video-host=&quot;youtube&quot; data-video-url=&quot;https://www.youtube.com/watch?v=Owk1kx8OlTE&quot; data-video-thumbnail=&quot;https://scrap.kakaocdn.net/dn/INARH/hyUItlOt75/knzDCa90Fjk9k8j5nVKex0/img.jpg?width=1280&amp;amp;height=720&amp;amp;face=0_0_1280_720&quot; data-video-width=&quot;860&quot; data-video-height=&quot;484&quot; data-video-origin-width=&quot;860&quot; data-video-origin-height=&quot;484&quot; data-ke-mobilestyle=&quot;widthContent&quot; data-video-title=&quot;언리얼엔진4 C++ 강좌 9 [쥐를잡자 찍찍찍-02] material 입히는 2가지 방법&quot; data-original-url=&quot;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/Owk1kx8OlTE&quot; width=&quot;860&quot; height=&quot;484&quot; frameborder=&quot;&quot; allowfullscreen=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;figcaption style=&quot;display: none;&quot;&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>프로그래밍/언리얼엔진</category>
      <author>panpro</author>
      <guid isPermaLink="true">https://panpro.tistory.com/470</guid>
      <comments>https://panpro.tistory.com/470#entry470comment</comments>
      <pubDate>Thu, 7 Dec 2023 20:51:43 +0900</pubDate>
    </item>
    <item>
      <title>언리얼엔진4 C++ 강좌 8 [쥐를잡자 찍찍찍-01] cube와 sphere를 이용해 플레이어 만들기</title>
      <link>https://panpro.tistory.com/469</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;unreal_title-001.png&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Fp2Js/btsBqDOonWm/jC4Nyetbl2uF4M08MYtI31/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Fp2Js/btsBqDOonWm/jC4Nyetbl2uF4M08MYtI31/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Fp2Js/btsBqDOonWm/jC4Nyetbl2uF4M08MYtI31/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FFp2Js%2FbtsBqDOonWm%2FjC4Nyetbl2uF4M08MYtI31%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1920&quot; height=&quot;1080&quot; data-filename=&quot;unreal_title-001.png&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;쥐를 잡자 찍찍찍의 블루프린트 버전에 이어 C++ 버전을 시작합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;블루프린트 버전과 최대한 비슷하게 만들어 보려 합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;C++ 액터 클래스에서 Cube 메시를 추가하는 방법&lt;/p&gt;
&lt;pre id=&quot;code_1701691853713&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// cube를 이용해 몸통 만들기
UStaticMeshComponent* pBodyMeshComp = CreateDefaultSubobject&amp;lt;UStaticMeshComponent&amp;gt;(TEXT(&quot;Body&quot;));
UStaticMesh* pBodyMesh = ConstructorHelpers::FObjectFinder&amp;lt;UStaticMesh&amp;gt;(TEXT(&quot;StaticMesh'/Engine/BasicShapes/Cube.Cube'&quot;)).Object;
pBodyMeshComp-&amp;gt;SetStaticMesh(pBodyMesh);&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;C++ 액터 클래스에서 Sphere 메시를 추가하는 방법&lt;/p&gt;
&lt;pre id=&quot;code_1701691908964&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// sphere를 이용해 머리 만들기
UStaticMeshComponent* pHeadMeshComp = CreateDefaultSubobject&amp;lt;UStaticMeshComponent&amp;gt;(TEXT(&quot;Head&quot;));
UStaticMesh* pHeadMesh = ConstructorHelpers::FObjectFinder&amp;lt;UStaticMesh&amp;gt;(TEXT(&quot;StaticMesh'/Engine/BasicShapes/Sphere.Sphere'&quot;)).Object;
pHeadMeshComp-&amp;gt;SetStaticMesh(pHeadMesh);&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;C++ 액터 클래스에서 매시 컴퍼넌트의 스케일을 조절하는 방법&lt;/p&gt;
&lt;pre id=&quot;code_1701691966050&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// 몸통 스케일 조정하기
pBodyMeshComp-&amp;gt;SetWorldScale3D(FVector(0.3f, 0.3f, 0.3f));&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=Om9_d5IdcN8&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.youtube.com/watch?v=Om9_d5IdcN8&lt;/a&gt;&lt;/p&gt;
&lt;figure data-ke-type=&quot;video&quot; data-ke-style=&quot;alignCenter&quot; data-video-host=&quot;youtube&quot; data-video-url=&quot;https://www.youtube.com/watch?v=Om9_d5IdcN8&quot; data-video-thumbnail=&quot;https://scrap.kakaocdn.net/dn/QdI2S/hyUE4mYjKE/oKaly3fj2gDqpm5coiussk/img.jpg?width=1280&amp;amp;height=720&amp;amp;face=0_0_1280_720&quot; data-video-width=&quot;860&quot; data-video-height=&quot;484&quot; data-video-origin-width=&quot;860&quot; data-video-origin-height=&quot;484&quot; data-ke-mobilestyle=&quot;widthContent&quot; data-video-title=&quot;언리얼엔진4 C++ 강좌 8 [쥐를잡자 찍찍찍-01] cube와 sphere를 이용해 플레이어 만들기&quot; data-original-url=&quot;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/Om9_d5IdcN8&quot; width=&quot;860&quot; height=&quot;484&quot; frameborder=&quot;&quot; allowfullscreen=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;figcaption style=&quot;display: none;&quot;&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>프로그래밍/언리얼엔진</category>
      <author>panpro</author>
      <guid isPermaLink="true">https://panpro.tistory.com/469</guid>
      <comments>https://panpro.tistory.com/469#entry469comment</comments>
      <pubDate>Mon, 4 Dec 2023 21:20:12 +0900</pubDate>
    </item>
    <item>
      <title>언리얼엔진 강좌 75 [쥐를잡자-11] 잡았다 놓쳤다 소리 넣고 마무리</title>
      <link>https://panpro.tistory.com/468</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;unreal_title-075.png&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/W9UlA/btsBkjIRGBo/6Ho3qpbaAzKElqO1kXudt1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/W9UlA/btsBkjIRGBo/6Ho3qpbaAzKElqO1kXudt1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/W9UlA/btsBkjIRGBo/6Ho3qpbaAzKElqO1kXudt1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FW9UlA%2FbtsBkjIRGBo%2F6Ho3qpbaAzKElqO1kXudt1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1920&quot; height=&quot;1080&quot; data-filename=&quot;unreal_title-075.png&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 드디어 쥐를 잡자 찍찍찍 게임 개발의 1차 마무리입니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;요즘 많이 서비스하고 있는 AI 성우를 이용해 잡았다! 놓쳤다! 만세! 한마리, 두마리, 등의 소리를 만들었습니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사용한 서비스는 vrew입니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;무료 성우의 목소리는 상업적 사용이 가능하다고 하여 넣어보았습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=zPXK1ZvV-_0&amp;amp;list=PLtmQsn29mAv9wq6s0BiUhusYW3dVrN7YS&amp;amp;index=11&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.youtube.com/watch?v=zPXK1ZvV-_0&amp;amp;list=PLtmQsn29mAv9wq6s0BiUhusYW3dVrN7YS&amp;amp;index=11&lt;/a&gt;&lt;/p&gt;
&lt;figure data-ke-type=&quot;video&quot; data-ke-style=&quot;alignCenter&quot; data-video-host=&quot;youtube&quot; data-video-url=&quot;https://www.youtube.com/watch?v=zPXK1ZvV-_0&quot; data-video-thumbnail=&quot;https://scrap.kakaocdn.net/dn/sI4mr/hyUE7DzFHA/rAKmp7zxtJ9eAgRmKx8Wx1/img.jpg?width=1280&amp;amp;height=720&amp;amp;face=0_0_1280_720&quot; data-video-width=&quot;860&quot; data-video-height=&quot;484&quot; data-video-origin-width=&quot;860&quot; data-video-origin-height=&quot;484&quot; data-ke-mobilestyle=&quot;widthContent&quot; data-video-title=&quot;언리얼엔진 강좌 75 [쥐를잡자-11] 잡았다 놓쳤다 소리 넣고 마무리&quot; data-original-url=&quot;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/zPXK1ZvV-_0&quot; width=&quot;860&quot; height=&quot;484&quot; frameborder=&quot;&quot; allowfullscreen=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;figcaption style=&quot;display: none;&quot;&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>프로그래밍/언리얼엔진</category>
      <author>panpro</author>
      <guid isPermaLink="true">https://panpro.tistory.com/468</guid>
      <comments>https://panpro.tistory.com/468#entry468comment</comments>
      <pubDate>Sat, 2 Dec 2023 14:21:35 +0900</pubDate>
    </item>
    <item>
      <title>언리얼엔진 강좌 74 [쥐를잡자-10] 쥐 다 잡았으면 다시 새 게임 시작</title>
      <link>https://panpro.tistory.com/467</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;unreal_title-074.png&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b6cp0h/btsA6ViN90L/9O9kR2WDJPOzkKLCio5ayK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b6cp0h/btsA6ViN90L/9O9kR2WDJPOzkKLCio5ayK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b6cp0h/btsA6ViN90L/9O9kR2WDJPOzkKLCio5ayK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb6cp0h%2FbtsA6ViN90L%2F9O9kR2WDJPOzkKLCio5ayK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1920&quot; height=&quot;1080&quot; data-filename=&quot;unreal_title-074.png&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;쥐를 잡자 찍찍찍 프로그램의 마무리입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;쥐를 잡는 동안 MC도 남의 쥐의 수를 계산하고, 플레이어도 남은 쥐의 수를 계산합니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게 쥐의 수를 하나씩 빼 나가다가 쥐의 수가 0이 되면 플레이어는 만세를 부르고 MC는 새 게임을 다시 시작합니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;새 게임을 다시 시작하기 위해 쥐의 수를 새로 정하고 각 플레이어들에게 알려주고 다음 플레이어가 누구인지 알려주며 게임을 새로 시작합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=TnDOfQy61lI&amp;amp;list=PLtmQsn29mAv9wq6s0BiUhusYW3dVrN7YS&amp;amp;index=10&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.youtube.com/watch?v=TnDOfQy61lI&amp;amp;list=PLtmQsn29mAv9wq6s0BiUhusYW3dVrN7YS&amp;amp;index=10&lt;/a&gt;&lt;/p&gt;
&lt;figure data-ke-type=&quot;video&quot; data-ke-style=&quot;alignCenter&quot; data-video-host=&quot;youtube&quot; data-video-url=&quot;https://www.youtube.com/watch?v=TnDOfQy61lI&quot; data-video-thumbnail=&quot;https://scrap.kakaocdn.net/dn/blkARO/hyUE7W2HAf/NKFSfhRi3H6pTz4r7Ke0g1/img.jpg?width=1280&amp;amp;height=720&amp;amp;face=0_0_1280_720&quot; data-video-width=&quot;860&quot; data-video-height=&quot;484&quot; data-video-origin-width=&quot;860&quot; data-video-origin-height=&quot;484&quot; data-ke-mobilestyle=&quot;widthContent&quot; data-video-title=&quot;언리얼엔진 강좌 74 [쥐를잡자-10] 쥐 다 잡았으면 다시 새 게임 시작&quot; data-original-url=&quot;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/TnDOfQy61lI&quot; width=&quot;860&quot; height=&quot;484&quot; frameborder=&quot;&quot; allowfullscreen=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;figcaption style=&quot;display: none;&quot;&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>프로그래밍/언리얼엔진</category>
      <author>panpro</author>
      <guid isPermaLink="true">https://panpro.tistory.com/467</guid>
      <comments>https://panpro.tistory.com/467#entry467comment</comments>
      <pubDate>Wed, 29 Nov 2023 22:10:18 +0900</pubDate>
    </item>
    <item>
      <title>언리얼엔진 강좌 73 [쥐를잡자-09] 0.3초 후 포즈 없애기</title>
      <link>https://panpro.tistory.com/466</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;unreal_title-073.png&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bEvVj7/btsAPwWyOGb/xuFKXQJO7vE74ZwqJKpDYK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bEvVj7/btsAPwWyOGb/xuFKXQJO7vE74ZwqJKpDYK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bEvVj7/btsAPwWyOGb/xuFKXQJO7vE74ZwqJKpDYK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbEvVj7%2FbtsAPwWyOGb%2FxuFKXQJO7vE74ZwqJKpDYK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1920&quot; height=&quot;1080&quot; data-filename=&quot;unreal_title-073.png&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;지금까지 버전은 잡았다 혹은 놓쳤다 포즈를 하고 그대로 가만히 있었습니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래서 타이머를 이용해 0.3초 후에 이 포즈를 없애는 RemoveAllPose 함수를 호출해 줍니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=99J6TDM0XDk&amp;amp;list=PLtmQsn29mAv9wq6s0BiUhusYW3dVrN7YS&amp;amp;index=9&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.youtube.com/watch?v=99J6TDM0XDk&amp;amp;list=PLtmQsn29mAv9wq6s0BiUhusYW3dVrN7YS&amp;amp;index=9&lt;/a&gt;&lt;/p&gt;
&lt;figure data-ke-type=&quot;video&quot; data-ke-style=&quot;alignCenter&quot; data-video-host=&quot;youtube&quot; data-video-url=&quot;https://www.youtube.com/watch?v=99J6TDM0XDk&quot; data-video-thumbnail=&quot;https://scrap.kakaocdn.net/dn/iMCGa/hyUE0pPwFG/7xQ2zKQxAUqcSYRoEGLTbK/img.jpg?width=1280&amp;amp;height=720&amp;amp;face=0_0_1280_720&quot; data-video-width=&quot;860&quot; data-video-height=&quot;484&quot; data-video-origin-width=&quot;860&quot; data-video-origin-height=&quot;484&quot; data-ke-mobilestyle=&quot;widthContent&quot; data-video-title=&quot;언리얼엔진 강좌 73 [쥐를잡자-09] 0.3초 후 포즈 없애기&quot; data-original-url=&quot;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/99J6TDM0XDk&quot; width=&quot;860&quot; height=&quot;484&quot; frameborder=&quot;&quot; allowfullscreen=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;figcaption style=&quot;display: none;&quot;&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>프로그래밍/언리얼엔진</category>
      <category>unrealengine</category>
      <category>강의</category>
      <category>언리얼엔진</category>
      <category>초보 강좌</category>
      <author>panpro</author>
      <guid isPermaLink="true">https://panpro.tistory.com/466</guid>
      <comments>https://panpro.tistory.com/466#entry466comment</comments>
      <pubDate>Tue, 28 Nov 2023 20:24:44 +0900</pubDate>
    </item>
    <item>
      <title>언리얼엔진 강좌 72 [쥐를잡자-08] 내 선택을 다른 플레이어에게 알리기</title>
      <link>https://panpro.tistory.com/465</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;unreal_title-072.png&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/prgjw/btsAM6duhDP/BaJ4cmuQ9dKB49lkj44bT1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/prgjw/btsAM6duhDP/BaJ4cmuQ9dKB49lkj44bT1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/prgjw/btsAM6duhDP/BaJ4cmuQ9dKB49lkj44bT1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fprgjw%2FbtsAM6duhDP%2FBaJ4cmuQ9dKB49lkj44bT1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1920&quot; height=&quot;1080&quot; data-filename=&quot;unreal_title-072.png&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사람이 쥐를잡자 찍찍찍 게임을 하면 말로 잡았다 놓쳤다를 하면서 나의 선택을 다른 플레이어들에게 쉽게 알려줄 수 있지만 컴퓨터 게임에서는 말로 하는 게 아니기 때문에 뭔가 내 선택을 다른 사람에게 알리는 방법을 생각해야 합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이전 시간에 MC가 나한테서 이벤트가 발생하는지 기다리고 있다가, 나의 선택을 이벤트로 발생시키면 이 이벤트를 읽어 나의 선택이 뭐였는지를 MC가 알게되는 데까지 진행했습니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이번 시간에는 그렇게 나의 선택이 뭔지 알게된 MC가 전체 플레이어들에게 나의 선택을 알려주는 데까지 진행합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=qNe6R-3h5Ac&amp;amp;list=PLtmQsn29mAv9wq6s0BiUhusYW3dVrN7YS&amp;amp;index=8&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.youtube.com/watch?v=qNe6R-3h5Ac&amp;amp;list=PLtmQsn29mAv9wq6s0BiUhusYW3dVrN7YS&amp;amp;index=8&lt;/a&gt;&lt;/p&gt;
&lt;figure data-ke-type=&quot;video&quot; data-ke-style=&quot;alignCenter&quot; data-video-host=&quot;youtube&quot; data-video-url=&quot;https://www.youtube.com/watch?v=qNe6R-3h5Ac&quot; data-video-thumbnail=&quot;https://scrap.kakaocdn.net/dn/e01jO/hyUB29q7YG/UZrAlIefkcKz2PTZyDhTJK/img.jpg?width=1280&amp;amp;height=720&amp;amp;face=0_0_1280_720&quot; data-video-width=&quot;860&quot; data-video-height=&quot;484&quot; data-video-origin-width=&quot;860&quot; data-video-origin-height=&quot;484&quot; data-ke-mobilestyle=&quot;widthContent&quot; data-video-title=&quot;언리얼엔진 강좌 72 [쥐를잡자-08] 내 선택을 다른 플레이어에게 알리기&quot; data-original-url=&quot;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/qNe6R-3h5Ac&quot; width=&quot;860&quot; height=&quot;484&quot; frameborder=&quot;&quot; allowfullscreen=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;figcaption style=&quot;display: none;&quot;&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>프로그래밍/언리얼엔진</category>
      <author>panpro</author>
      <guid isPermaLink="true">https://panpro.tistory.com/465</guid>
      <comments>https://panpro.tistory.com/465#entry465comment</comments>
      <pubDate>Thu, 23 Nov 2023 20:52:01 +0900</pubDate>
    </item>
    <item>
      <title>언리얼엔진 강좌 71 [쥐를잡자-07] 플레이어가 자기 선택으로 이벤트 발생시키기</title>
      <link>https://panpro.tistory.com/464</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;unreal_title-071.png&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/xbux8/btsAGSlN8bC/rwOaJ2uqq9MsVquVc9LqC1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/xbux8/btsAGSlN8bC/rwOaJ2uqq9MsVquVc9LqC1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/xbux8/btsAGSlN8bC/rwOaJ2uqq9MsVquVc9LqC1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fxbux8%2FbtsAGSlN8bC%2FrwOaJ2uqq9MsVquVc9LqC1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1920&quot; height=&quot;1080&quot; data-filename=&quot;unreal_title-071.png&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;각 플레이어는 자기 순서가 되면 잡았다나 놓쳤다를 랜덤으로 선택합니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 내가 지금 잡았다를 선택했는지 놓쳤다를 선택했는지 다른 플레이어들에게 알려야 하는데, 우리는 가장 쉬운 방법으로, 나의 선택을 MC에게 알리고, MC는 다시 모든 플레이어들에게 알려줍니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(나를 포함한) 다른 플레이어들의 선택을 MC로부터 받으면, 계산에 들어갑니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이게 &quot;잡았다&quot; 이면 내가 그 동안 계산했던, 남은 쥐의 수에서 1을 빼고,&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;'놓쳤다&quot;면 그냥 아무 것도 안합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;플레이어가 자기 순서가 되어 잡았다 혹은 놓쳤다를 한 선택을 MC에게 알려주기 위해 이벤트를 발생시킵니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&quot;나 잡았다 선택했다&quot; 라는 이벤트를 발생시키면, MC가 이 이벤트 발생하는 걸 듣고 자기가 가진 쥐의 수를 하나 빼고 다른 플레이어들에게도 &quot;잡았대&quot; 라고 알려줍니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이번 강의에서는 이 흐름을 블루프린트로 만들어 보겠습니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=VkLIpXXG9Ok&amp;amp;list=PLtmQsn29mAv9wq6s0BiUhusYW3dVrN7YS&amp;amp;index=7&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.youtube.com/watch?v=VkLIpXXG9Ok&amp;amp;list=PLtmQsn29mAv9wq6s0BiUhusYW3dVrN7YS&amp;amp;index=7&lt;/a&gt;&lt;/p&gt;
&lt;figure data-ke-type=&quot;video&quot; data-ke-style=&quot;alignCenter&quot; data-video-host=&quot;youtube&quot; data-video-url=&quot;https://www.youtube.com/watch?v=VkLIpXXG9Ok&quot; data-video-thumbnail=&quot;https://scrap.kakaocdn.net/dn/dNwry1/hyUysIdWVj/olgZsCtRg0pe5KlLSheedk/img.jpg?width=1280&amp;amp;height=720&amp;amp;face=0_0_1280_720&quot; data-video-width=&quot;860&quot; data-video-height=&quot;484&quot; data-video-origin-width=&quot;860&quot; data-video-origin-height=&quot;484&quot; data-ke-mobilestyle=&quot;widthContent&quot; data-original-url=&quot;&quot; data-video-title=&quot;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/VkLIpXXG9Ok&quot; width=&quot;860&quot; height=&quot;484&quot; frameborder=&quot;&quot; allowfullscreen=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;figcaption style=&quot;display: none;&quot;&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>프로그래밍/언리얼엔진</category>
      <author>panpro</author>
      <guid isPermaLink="true">https://panpro.tistory.com/464</guid>
      <comments>https://panpro.tistory.com/464#entry464comment</comments>
      <pubDate>Tue, 21 Nov 2023 20:36:28 +0900</pubDate>
    </item>
    <item>
      <title>언리얼엔진 강좌 70 [쥐를잡자-06] 내 순서가 되면 잡았다 혹은 놓쳤다 결정하기</title>
      <link>https://panpro.tistory.com/463</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;unreal_title-070.png&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cQkjLw/btsAzCJFX4m/cmvuNPJSWK1vNJabLHxIHk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cQkjLw/btsAzCJFX4m/cmvuNPJSWK1vNJabLHxIHk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cQkjLw/btsAzCJFX4m/cmvuNPJSWK1vNJabLHxIHk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcQkjLw%2FbtsAzCJFX4m%2FcmvuNPJSWK1vNJabLHxIHk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1920&quot; height=&quot;1080&quot; data-filename=&quot;unreal_title-070.png&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;MC가 이번엔 몇 번쨰 플레이어가 할 차례다 라고 하면 그게 내 순서인지 확인한 다음 내 순서가 아니면 그냥 무시하고 가만 있고, 내 순서면 잡았다 혹은 놓쳤다 둘 중 하나를 선택합니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 때 블루프린트의 Random Integer In Range 함수를 이용합니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;0-1 사이의 숫자를 랜덤으로 만들고,&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;0이면 잡았다이고,&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1이면 놓쳤다로 생각합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;실제로 사람이 이 게임을 하면 플레이어간 약 1초 정도 사이를 두고 진행됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;세마리! - 1초 - 잡았다 - 1초 - 놓쳤다 - 1초 - 잡았다 - 1초 - 잡았다 - 1초 - 만세&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게 각 플레이어마다 1초 정도 사이가 있는거죠.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래서 이 게임에서도 이용해 1초 뒤에 행동을 하도록 타이머를 둡니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=ZmhO_-H82BE&amp;amp;list=PLtmQsn29mAv9wq6s0BiUhusYW3dVrN7YS&amp;amp;index=6&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.youtube.com/watch?v=ZmhO_-H82BE&amp;amp;list=PLtmQsn29mAv9wq6s0BiUhusYW3dVrN7YS&amp;amp;index=6&lt;/a&gt;&lt;/p&gt;
&lt;figure data-ke-type=&quot;video&quot; data-ke-style=&quot;alignCenter&quot; data-video-host=&quot;youtube&quot; data-video-url=&quot;https://www.youtube.com/watch?v=ZmhO_-H82BE&quot; data-video-thumbnail=&quot;https://scrap.kakaocdn.net/dn/bPbmvb/hyUB4ZNvT7/QTxdJO5TnGAKuc52Isw5n0/img.jpg?width=1280&amp;amp;height=720&amp;amp;face=0_0_1280_720&quot; data-video-width=&quot;860&quot; data-video-height=&quot;484&quot; data-video-origin-width=&quot;860&quot; data-video-origin-height=&quot;484&quot; data-ke-mobilestyle=&quot;widthContent&quot; data-video-title=&quot;언리얼엔진 강좌 70 [쥐를잡자-06] 내 순서가 되면 잡았다 혹은 놓쳤다 결정하기&quot; data-original-url=&quot;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/ZmhO_-H82BE&quot; width=&quot;860&quot; height=&quot;484&quot; frameborder=&quot;&quot; allowfullscreen=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;figcaption style=&quot;display: none;&quot;&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>프로그래밍/언리얼엔진</category>
      <category>강좌</category>
      <category>신서유기</category>
      <category>언리얼엔진</category>
      <category>쥐를잡자찍찍찍</category>
      <author>panpro</author>
      <guid isPermaLink="true">https://panpro.tistory.com/463</guid>
      <comments>https://panpro.tistory.com/463#entry463comment</comments>
      <pubDate>Mon, 20 Nov 2023 20:34:58 +0900</pubDate>
    </item>
    <item>
      <title>언리얼엔진 강좌 69 [쥐를잡자-05] 다음 사람은 너다 - 게임 진행하기</title>
      <link>https://panpro.tistory.com/462</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;unreal_title-069.png&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/896LD/btsAyoqWycG/cBV4xzmKr4rMLZsYoFsW91/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/896LD/btsAyoqWycG/cBV4xzmKr4rMLZsYoFsW91/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/896LD/btsAyoqWycG/cBV4xzmKr4rMLZsYoFsW91/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F896LD%2FbtsAyoqWycG%2FcBV4xzmKr4rMLZsYoFsW91%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1920&quot; height=&quot;1080&quot; data-filename=&quot;unreal_title-069.png&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;먼저 모든 플레이어에게 자기가 몇 번째 순서인지를 미리 설정해 둡니다. 0, 1, 2, 3, 4로 zero base로 정해줍니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;MC의 역할 중 하나는 게임을 진행하는 것입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;모든 플레이어들에게 지금 잡았다 혹은 놓쳤다를 외쳐야 하는 플레이어는 누구라고 알려줘야 합니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그 기능을 하기 위해 MC는 내부에 integer 형의 변수를 하나 가지고 그 값을 계속 증가시켜 나갑니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게 하면 처음 한 번은 0, 1, 2, 3, 4 의 숫자가 나올테니, 그 숫자에 맞게 각각 잡았다 혹은 놓쳤다를 하면 되는데,&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;숫자가 5가 되면, 5번째 플레이어는 없기 때문에 더 이상 진행을 할 수가 없게 됩니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이럴 때 쓰는 방법이 나머지 함수를 쓰는 겁니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;어떤 숫자든지 5로 나누면 그 나눗셈의 나머지는 무조건 0, 1, 2, 3, 4 중 하나가 됩니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 방법을 이용해 playerIndex는 계속 증가시키고 5로 나눈 나머지 값을 이용해 어떤 플레이어가 할 차례인지 알려주며 게임을 계속 진행합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://youtu.be/H7Z_fjZ13JM&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://youtu.be/H7Z_fjZ13JM&lt;/a&gt;&lt;/p&gt;
&lt;figure data-ke-type=&quot;video&quot; data-ke-style=&quot;alignCenter&quot; data-video-host=&quot;youtube&quot; data-video-url=&quot;https://www.youtube.com/watch?v=H7Z_fjZ13JM&quot; data-video-thumbnail=&quot;https://scrap.kakaocdn.net/dn/c29jRZ/hyUyxuQI4D/KDJ7CvPC8LeV3S9kALxaIk/img.jpg?width=1280&amp;amp;height=720&amp;amp;face=0_0_1280_720&quot; data-video-width=&quot;860&quot; data-video-height=&quot;484&quot; data-video-origin-width=&quot;860&quot; data-video-origin-height=&quot;484&quot; data-ke-mobilestyle=&quot;widthContent&quot; data-video-title=&quot;언리얼엔진 강좌 69 [쥐를잡자-05] 다음 사람은 너다 - 게임 진행하기&quot; data-original-url=&quot;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/H7Z_fjZ13JM&quot; width=&quot;860&quot; height=&quot;484&quot; frameborder=&quot;&quot; allowfullscreen=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;figcaption style=&quot;display: none;&quot;&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>프로그래밍/언리얼엔진</category>
      <author>panpro</author>
      <guid isPermaLink="true">https://panpro.tistory.com/462</guid>
      <comments>https://panpro.tistory.com/462#entry462comment</comments>
      <pubDate>Fri, 17 Nov 2023 20:51:40 +0900</pubDate>
    </item>
    <item>
      <title>언리얼엔진 강좌 68 [쥐를잡자-04] 게임 초기화하기</title>
      <link>https://panpro.tistory.com/461</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;unreal_title-068.png&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/L1F5g/btsAmqjI2Ou/wOV2EfJSqvBzM8Caz7ag40/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/L1F5g/btsAmqjI2Ou/wOV2EfJSqvBzM8Caz7ag40/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/L1F5g/btsAmqjI2Ou/wOV2EfJSqvBzM8Caz7ag40/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FL1F5g%2FbtsAmqjI2Ou%2FwOV2EfJSqvBzM8Caz7ag40%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1920&quot; height=&quot;1080&quot; data-filename=&quot;unreal_title-068.png&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;게임 진행을 위해 MC를 새로 만듭니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;MC는 다음의 일을 합니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;- 잡아야 하는 쥐의 수를 정합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;- 모든 플레이어에게 쥐의 수를 알려줍니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;또 더 해야 하는 일은 강의 진도에 맞게 또 알려드리겠습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;289&quot; data-origin-height=&quot;177&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dOcsrA/btsAmvFf8FU/b5I569UO3lo5SJRazesh5k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dOcsrA/btsAmvFf8FU/b5I569UO3lo5SJRazesh5k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dOcsrA/btsAmvFf8FU/b5I569UO3lo5SJRazesh5k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdOcsrA%2FbtsAmvFf8FU%2Fb5I569UO3lo5SJRazesh5k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;289&quot; height=&quot;177&quot; data-origin-width=&quot;289&quot; data-origin-height=&quot;177&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;MC가 모든 플레이어에게 쥐의 수를 알려주기 위해 MC에게 이런 식으로 모든 플레이어가 누구인지 알려줘야 합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bizZEz/btsAoqDcK7s/oSIhKbEzZcX1EBtPqwXIF1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bizZEz/btsAoqDcK7s/oSIhKbEzZcX1EBtPqwXIF1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bizZEz/btsAoqDcK7s/oSIhKbEzZcX1EBtPqwXIF1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbizZEz%2FbtsAoqDcK7s%2FoSIhKbEzZcX1EBtPqwXIF1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1920&quot; height=&quot;1080&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그럼 이렇게 5마리의 플레이어에게 쥐의 수를 알려줄 수 있게 됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이번 강의에서는 이렇게 각 플레이어에게 쥐의 수를 알려주는 데까지 진행합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://youtu.be/X5iDQaBs9YE&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://youtu.be/X5iDQaBs9YE&lt;/a&gt;&lt;/p&gt;
&lt;figure data-ke-type=&quot;video&quot; data-ke-style=&quot;alignCenter&quot; data-video-host=&quot;youtube&quot; data-video-url=&quot;https://www.youtube.com/watch?v=X5iDQaBs9YE&quot; data-video-thumbnail=&quot;https://scrap.kakaocdn.net/dn/d29jai/hyUu3PtvwD/eK09GgvmNpkCdjFMuS2gzk/img.jpg?width=1280&amp;amp;height=720&amp;amp;face=0_0_1280_720&quot; data-video-width=&quot;860&quot; data-video-height=&quot;484&quot; data-video-origin-width=&quot;860&quot; data-video-origin-height=&quot;484&quot; data-ke-mobilestyle=&quot;widthContent&quot; data-video-title=&quot;언리얼엔진 강좌 68 [쥐를잡자-04] 게임 초기화하기&quot; data-original-url=&quot;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/X5iDQaBs9YE&quot; width=&quot;860&quot; height=&quot;484&quot; frameborder=&quot;&quot; allowfullscreen=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;figcaption style=&quot;display: none;&quot;&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>프로그래밍/언리얼엔진</category>
      <author>panpro</author>
      <guid isPermaLink="true">https://panpro.tistory.com/461</guid>
      <comments>https://panpro.tistory.com/461#entry461comment</comments>
      <pubDate>Thu, 16 Nov 2023 21:38:11 +0900</pubDate>
    </item>
    <item>
      <title>언리얼엔진 강좌 67 [쥐를잡자-03] 포즈를 보여주는 함수 만들기</title>
      <link>https://panpro.tistory.com/460</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;unreal_title-067.png&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/6qdQK/btsAi41MUkX/KODt0M19I98M7iInr3f4Dk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/6qdQK/btsAi41MUkX/KODt0M19I98M7iInr3f4Dk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/6qdQK/btsAi41MUkX/KODt0M19I98M7iInr3f4Dk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F6qdQK%2FbtsAi41MUkX%2FKODt0M19I98M7iInr3f4Dk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1920&quot; height=&quot;1080&quot; data-filename=&quot;unreal_title-067.png&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이전 시간에 팔을 3개 만들어 놓고 시작했는데, 사실 그렇게는 쓸 수가 없죠.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래서 필요한 팔만 보여주고 나머지는 모두 감추는 blueprint 함수, setPose 함수를 만듭니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 이렇게 하다보면 한번 등장했던 팔이 없어지지 않고 계속 남는 문제가 있어 모든 팔을 안보이게 해주는 removeAllPose 함수도 만들어 줍니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 J 버튼을 누르면 잡았다 동작이 보여지도록 하고,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;K 버튼을 누르면 놓쳤다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;L 버튼을 누르면 만세 동작이 보여지도록 해서 setPose 함수가 잘 동작하는지 테스트 해 봅니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>프로그래밍/언리얼엔진</category>
      <author>panpro</author>
      <guid isPermaLink="true">https://panpro.tistory.com/460</guid>
      <comments>https://panpro.tistory.com/460#entry460comment</comments>
      <pubDate>Wed, 15 Nov 2023 19:55:46 +0900</pubDate>
    </item>
    <item>
      <title>언리얼엔진 강좌 66 [쥐를잡자-02] 동작을 위한 손모양 만들기</title>
      <link>https://panpro.tistory.com/459</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;unreal_title-066.png&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/l5BMp/btsAjiFD0sD/AqUapKcu2JxD9mSqNdI6y1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/l5BMp/btsAjiFD0sD/AqUapKcu2JxD9mSqNdI6y1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/l5BMp/btsAjiFD0sD/AqUapKcu2JxD9mSqNdI6y1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fl5BMp%2FbtsAjiFD0sD%2FAqUapKcu2JxD9mSqNdI6y1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1920&quot; height=&quot;1080&quot; data-filename=&quot;unreal_title-066.png&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;쥐를잡자 찍찍찍은 잡았다 놓쳤다 만세의 3가지 동작을 필요로 하는데,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;블루프린트 클래스에서 그 동작들을 위한 팔모양을 만듭니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://youtu.be/tEgChYN2A0U&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://youtu.be/tEgChYN2A0U&lt;/a&gt;&lt;/p&gt;
&lt;figure data-ke-type=&quot;video&quot; data-ke-style=&quot;alignCenter&quot; data-video-host=&quot;youtube&quot; data-video-url=&quot;https://www.youtube.com/watch?v=tEgChYN2A0U&quot; data-video-thumbnail=&quot;https://scrap.kakaocdn.net/dn/mzFk4/hyUyvwqoy7/H1lyz4m42vIi760lZBEJO0/img.jpg?width=1280&amp;amp;height=720&amp;amp;face=0_0_1280_720&quot; data-video-width=&quot;860&quot; data-video-height=&quot;484&quot; data-video-origin-width=&quot;860&quot; data-video-origin-height=&quot;484&quot; data-ke-mobilestyle=&quot;widthContent&quot; data-original-url=&quot;&quot; data-video-title=&quot;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/tEgChYN2A0U&quot; width=&quot;860&quot; height=&quot;484&quot; frameborder=&quot;&quot; allowfullscreen=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;figcaption style=&quot;display: none;&quot;&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>프로그래밍/언리얼엔진</category>
      <author>panpro</author>
      <guid isPermaLink="true">https://panpro.tistory.com/459</guid>
      <comments>https://panpro.tistory.com/459#entry459comment</comments>
      <pubDate>Wed, 15 Nov 2023 19:52:59 +0900</pubDate>
    </item>
    <item>
      <title>언리얼엔진 강좌 65 [쥐를잡자-01] 쥐를잡자 찍찍찍 계획, 설계</title>
      <link>https://panpro.tistory.com/458</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;unreal_title-065.png&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bWv5ep/btsz884boGB/GGDf2iGNTzSlIQ57gjB910/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bWv5ep/btsz884boGB/GGDf2iGNTzSlIQ57gjB910/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bWv5ep/btsz884boGB/GGDf2iGNTzSlIQ57gjB910/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbWv5ep%2Fbtsz884boGB%2FGGDf2iGNTzSlIQ57gjB910%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1920&quot; height=&quot;1080&quot; data-filename=&quot;unreal_title-065.png&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;신서유기라는 예능 프로에서 &quot;쥐를잡자 쥐를잡자 찍찍찍&quot; 게임 하는 것을 보고 언리얼엔진4 블루프린트로 개발해 보고 싶어 만들어 봤습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=xtp-KtxzVfY&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.youtube.com/watch?v=xtp-KtxzVfY&lt;/a&gt;&lt;/p&gt;
&lt;figure data-ke-type=&quot;video&quot; data-ke-style=&quot;alignCenter&quot; data-video-host=&quot;youtube&quot; data-video-url=&quot;https://www.youtube.com/watch?v=xtp-KtxzVfY&quot; data-video-thumbnail=&quot;https://scrap.kakaocdn.net/dn/IQDlk/hyUu5k87Z8/65NhdVC2dIB17CnmeJOGJk/img.jpg?width=1280&amp;amp;height=720&amp;amp;face=0_0_1280_720&quot; data-video-width=&quot;860&quot; data-video-height=&quot;484&quot; data-video-origin-width=&quot;860&quot; data-video-origin-height=&quot;484&quot; data-ke-mobilestyle=&quot;widthContent&quot; data-video-title=&quot;본격고인물게임 쥐를잡자 쥐를잡자 찍찍찍! | 신서유기7 tvNbros7 EP.5&quot; data-original-url=&quot;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/xtp-KtxzVfY&quot; width=&quot;860&quot; height=&quot;484&quot; frameborder=&quot;&quot; allowfullscreen=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;figcaption style=&quot;display: none;&quot;&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;쥐를잡자&amp;nbsp;찍찍찍의&amp;nbsp;룰을&amp;nbsp;간단하게&amp;nbsp;설명하면,&amp;nbsp;&lt;br /&gt;첫번째&amp;nbsp;사람이&amp;nbsp;잡아야&amp;nbsp;할&amp;nbsp;쥐의&amp;nbsp;수를&amp;nbsp;말하고&amp;nbsp;(예:&amp;nbsp;다섯마리!)&lt;br /&gt;&lt;br /&gt;그&amp;nbsp;다음&amp;nbsp;사람부터&amp;nbsp;&quot;잡았다&quot;&amp;nbsp;혹은&amp;nbsp;&quot;놓쳤다&quot;를&amp;nbsp;말합니다.&lt;br /&gt;만약&amp;nbsp;&quot;잡았다&quot;라고&amp;nbsp;말했다면&amp;nbsp;마음&amp;nbsp;속으로&amp;nbsp;쥐의&amp;nbsp;수를&amp;nbsp;하나&amp;nbsp;줄여줍니다.&lt;br /&gt;(예:&amp;nbsp;5&amp;nbsp;-&amp;nbsp;1&amp;nbsp;=&amp;nbsp;4마리&amp;nbsp;남음)&lt;br /&gt;&lt;br /&gt;이런&amp;nbsp;식으로&amp;nbsp;쭉&amp;nbsp;진행하다&amp;nbsp;쥐를&amp;nbsp;다&amp;nbsp;잡아서&amp;nbsp;쥐가&amp;nbsp;0마리가&amp;nbsp;되면&amp;nbsp;&quot;만세&quot;라고&amp;nbsp;하면&amp;nbsp;됩니다.&lt;br /&gt;&lt;br /&gt;이&amp;nbsp;게임은&amp;nbsp;블루프린트&amp;nbsp;버전으로&amp;nbsp;만들고,&lt;br /&gt;C++&amp;nbsp;버전으로도&amp;nbsp;만들어&amp;nbsp;올릴&amp;nbsp;계획입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure data-ke-type=&quot;video&quot; data-ke-style=&quot;alignCenter&quot; data-video-host=&quot;youtube&quot; data-video-url=&quot;https://www.youtube.com/watch?v=g7rTnHsasL0&quot; data-video-thumbnail=&quot;https://scrap.kakaocdn.net/dn/bIpxD7/hyUuSznfBn/rjBlp042LVpoIDbHaAf9M0/img.jpg?width=1280&amp;amp;height=720&amp;amp;face=0_0_1280_720&quot; data-video-width=&quot;860&quot; data-video-height=&quot;484&quot; data-video-origin-width=&quot;860&quot; data-video-origin-height=&quot;484&quot; data-ke-mobilestyle=&quot;widthContent&quot; data-video-title=&quot;언리얼엔진 강좌 65 [쥐를잡자-01] 쥐를잡자 찍찍찍 계획, 설계&quot; data-original-url=&quot;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/g7rTnHsasL0&quot; width=&quot;860&quot; height=&quot;484&quot; frameborder=&quot;&quot; allowfullscreen=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;figcaption style=&quot;display: none;&quot;&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>프로그래밍/언리얼엔진</category>
      <category>강의</category>
      <category>언리얼엔진</category>
      <author>panpro</author>
      <guid isPermaLink="true">https://panpro.tistory.com/458</guid>
      <comments>https://panpro.tistory.com/458#entry458comment</comments>
      <pubDate>Sun, 12 Nov 2023 21:30:10 +0900</pubDate>
    </item>
    <item>
      <title>언리얼엔진 4 C++강좌 007 [actor-07] 액터에서 이벤트 발생시키기</title>
      <link>https://panpro.tistory.com/457</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;unreal_title-007.png&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bHcgmw/btsAaPbFg53/yg44s4sAEarpI7zqyjdBQ1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bHcgmw/btsAaPbFg53/yg44s4sAEarpI7zqyjdBQ1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bHcgmw/btsAaPbFg53/yg44s4sAEarpI7zqyjdBQ1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbHcgmw%2FbtsAaPbFg53%2Fyg44s4sAEarpI7zqyjdBQ1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1920&quot; height=&quot;1080&quot; data-filename=&quot;unreal_title-007.png&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;내가 만든 actor인 LampActor에 이벤트를 추가합니다.&lt;br /&gt;그리고 레벨 블루프린트와 연결되는 ScriptActor를 만들어서 LampActor에서 발생하는 이벤트를 LevelScript Actor에서 받아 처리하는 방법을 설명합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1699786223398&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// LampActor.h

DECLARE_EVENT(ALampActor, FLightSetEvent)&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1699786279262&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// LampActor.h

public:
	FLightSetEvent&amp;amp; OnLigthSet()
	{
		return lightSetEvent;
	}

private:
	FLightSetEvent lightSetEvent;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;램프 액터의 헤더 파일에 위와 같이 이벤트를 선언합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1699786587550&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// LampActor.cpp

lightSetEvent.Broadcast();&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 코드로 이벤트를 발생시킵니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1699786888491&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// MyLevelScriptActor.cpp

void AMyLevelScriptActor::BeginPlay()
{
	Super::BeginPlay();

	//m_pActor-&amp;gt;SetLight(true);
	m_pActor-&amp;gt;OnLigthSet().AddUObject(this, &amp;amp;AMyLevelScriptActor::OnLightSetHandler);
}

void AMyLevelScriptActor::OnLightSetHandler()
{
	UE_LOG(LogTemp, Warning, TEXT(&quot;in OnLightSetHandler Handler !!&quot;));
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 레벨블루프린트에 연결되는 MyLevelScriptActor를 만들어 램프 액터에서 발생하는 이벤트를 받아 처리합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bljf1M/btsz8rDetMj/fIJdp56CKYcJediV4k7nf0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bljf1M/btsz8rDetMj/fIJdp56CKYcJediV4k7nf0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bljf1M/btsz8rDetMj/fIJdp56CKYcJediV4k7nf0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbljf1M%2Fbtsz8rDetMj%2FfIJdp56CKYcJediV4k7nf0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1920&quot; height=&quot;1080&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게 하기 위해 레벨블루프린트에서 부모 클래스로 우리가 만든 MyLevelScriptActor 클래스를 설정해 줍니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 램프 액터에서 이벤트가 발생하면 그 이벤트를 MyLevelScriptActor에서 받아 로그를 보여줍니다. (OnLightSetHandler())&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure data-ke-type=&quot;video&quot; data-ke-style=&quot;alignCenter&quot; data-video-host=&quot;youtube&quot; data-video-url=&quot;https://www.youtube.com/watch?v=c6dreU6IGPo&quot; data-video-thumbnail=&quot;https://scrap.kakaocdn.net/dn/XYZLC/hyUu4T4rcp/ATki6n1kRnFc8CyWYO4qAk/img.jpg?width=1280&amp;amp;height=720&amp;amp;face=0_0_1280_720&quot; data-video-width=&quot;860&quot; data-video-height=&quot;484&quot; data-video-origin-width=&quot;860&quot; data-video-origin-height=&quot;484&quot; data-ke-mobilestyle=&quot;widthContent&quot; data-video-title=&quot;언리얼엔진 4 C++강좌 007 [actor-07] 액터에서 이벤트 발생시키기&quot; data-original-url=&quot;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/c6dreU6IGPo&quot; width=&quot;860&quot; height=&quot;484&quot; frameborder=&quot;&quot; allowfullscreen=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;figcaption style=&quot;display: none;&quot;&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>프로그래밍/언리얼엔진</category>
      <category>ue</category>
      <category>ue4</category>
      <category>언리얼엔진</category>
      <category>언리얼엔진 강의</category>
      <category>언리얼엔진 강좌</category>
      <category>한글 강의</category>
      <author>panpro</author>
      <guid isPermaLink="true">https://panpro.tistory.com/457</guid>
      <comments>https://panpro.tistory.com/457#entry457comment</comments>
      <pubDate>Sun, 12 Nov 2023 20:12:11 +0900</pubDate>
    </item>
    <item>
      <title>언리얼엔진 4 C++강좌 004 [actor-04] 가까이 다가가면 자동으로 불이 켜지는 램프 액터 만들기</title>
      <link>https://panpro.tistory.com/454</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;unreal_title-004.png&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/wJKfp/btszojD9zM1/U2K4kz46d4CpkAPL44KKzk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/wJKfp/btszojD9zM1/U2K4kz46d4CpkAPL44KKzk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/wJKfp/btszojD9zM1/U2K4kz46d4CpkAPL44KKzk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FwJKfp%2FbtszojD9zM1%2FU2K4kz46d4CpkAPL44KKzk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1920&quot; height=&quot;1080&quot; data-filename=&quot;unreal_title-004.png&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;가까이 다가가면 자동으로 불이 켜지는 램프 액터를 만들어 봅니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;C++로 램프 액터를 만든 다음 box component를 추가하고 그 box에 뭔가 overlap 되는 이벤트가 발생하면, 그 이벤트를 처리해 램프에 불을 켜는 처리를 해 봅니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;또한 overlapEnd 이벤트도 처리해 멀어지면 자동으로 불이 꺼지게 만들어 봅니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;먼저 박스 컴퍼넌트를 추가해 봅니다.&lt;/p&gt;
&lt;pre class=&quot;less&quot;&gt;&lt;code&gt;// LampActor.h

UPROPERTY()
UBoxComponent* m_pBox;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 박스에서 발생하는 이벤트를 받기 위해, OnOverlapBegin 이벤트와 OnOverlapEnd 이벤트를 아래와 같이 정의합니다.&lt;/p&gt;
&lt;pre class=&quot;reasonml&quot;&gt;&lt;code&gt;// LampActor.h

UFUNCTION()
void OnOverlapBegin(UPrimitiveComponent* overlappedComp, AActor* otherActor, UPrimitiveComponent* otherComp, int32 otherBodyIndex, bool bFromSweep, const FHitResult&amp;amp; sweepResult);

UFUNCTION()
void OnOverlapEnd(UPrimitiveComponent* overlappedComp, AActor* otherActor, UPrimitiveComponent* otherComp, int32 otherBodyIndex);&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 생성자에서 박스 컴퍼넌트에서 발생하는 이벤트를 처리할 핸들러를 연결해 줍니다. 정확히는 그 이벤트를 처리할 핸들러를 추가해 주는 거죠. 하지만 그 이벤트를 처리할 핸들러가 하나일 뿐인거.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1698558796145&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// LampActor.cpp

m_pBox-&amp;gt;OnComponentBeginOverlap.AddDynamic(this, &amp;amp;ALampActor::OnOverlapBegin);
m_pBox-&amp;gt;OnComponentEndOverlap.AddDynamic(this, &amp;amp;ALampActor::OnOverlapEnd);&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 마지막으로 저 핸들러 안에 불이 켜지거나 꺼지는 처리를 해주면 됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1698558904776&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// LampActor.cpp

void ALampActor::OnOverlapBegin(UPrimitiveComponent* overlappedComp, AActor * otherActor, UPrimitiveComponent * otherComp, int32 otherBodyIndex, bool bFromSweep, const FHitResult &amp;amp; sweepResult)
{
	if (otherActor &amp;amp;&amp;amp; (otherActor != this) &amp;amp;&amp;amp; otherComp)
	{
		m_pLight-&amp;gt;SetVisibility(true);
		UE_LOG(LogTemp, Warning, TEXT(&quot;OnOverlap Begin!&quot;));
	}
}



void ALampActor::OnOverlapEnd(UPrimitiveComponent * overlappedComp, AActor * otherActor, UPrimitiveComponent * otherComp, int32 otherBodyIndex)
{
	if (otherActor &amp;amp;&amp;amp; (otherActor != this) &amp;amp;&amp;amp; otherComp)
	{
		m_pLight-&amp;gt;SetVisibility(false);
		UE_LOG(LogTemp, Warning, TEXT(&quot;OnOverlap End!!!&quot;));
	}
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;전체 소스코드 github: &lt;a href=&quot;https://github.com/easyprogstudy/ue4cppS01&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://github.com/easyprogstudy/ue4cppS01&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1698558967679&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;object&quot; data-og-title=&quot;GitHub - easyprogstudy/ue4cppS01: Unreal Engine 4 C++ study&quot; data-og-description=&quot;Unreal Engine 4 C++ study. Contribute to easyprogstudy/ue4cppS01 development by creating an account on GitHub.&quot; data-og-host=&quot;github.com&quot; data-og-source-url=&quot;https://github.com/easyprogstudy/ue4cppS01&quot; data-og-url=&quot;https://github.com/easyprogstudy/ue4cppS01&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/h2fIh/hyUki6Jpqz/oLGFbkULQa8tX4kQOE1EK0/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600&quot;&gt;&lt;a href=&quot;https://github.com/easyprogstudy/ue4cppS01&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://github.com/easyprogstudy/ue4cppS01&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/h2fIh/hyUki6Jpqz/oLGFbkULQa8tX4kQOE1EK0/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;GitHub - easyprogstudy/ue4cppS01: Unreal Engine 4 C++ study&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Unreal Engine 4 C++ study. Contribute to easyprogstudy/ue4cppS01 development by creating an account on GitHub.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;github.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure data-ke-type=&quot;video&quot; data-ke-style=&quot;alignCenter&quot; data-video-host=&quot;youtube&quot; data-video-url=&quot;https://www.youtube.com/watch?v=pJuUn6JpqBc&quot; data-video-thumbnail=&quot;https://scrap.kakaocdn.net/dn/IVApP/hyUkfIXpQL/31pxmDMywXKnmCyr4aYLU1/img.jpg?width=1280&amp;amp;height=720&amp;amp;face=0_0_1280_720&quot; data-video-width=&quot;860&quot; data-video-height=&quot;484&quot; data-video-origin-width=&quot;860&quot; data-video-origin-height=&quot;484&quot; data-ke-mobilestyle=&quot;widthContent&quot; data-video-title=&quot;언리얼엔진 4 C++강좌 004 [actor-04] 가까이 다가가면 자동으로 불이 켜지는 램프 액터 만들기&quot; data-original-url=&quot;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/pJuUn6JpqBc&quot; width=&quot;860&quot; height=&quot;484&quot; frameborder=&quot;&quot; allowfullscreen=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;figcaption style=&quot;display: none;&quot;&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>프로그래밍/언리얼엔진</category>
      <category>C++</category>
      <category>unrealengine</category>
      <category>강의</category>
      <category>강좌</category>
      <category>언리얼엔진</category>
      <author>panpro</author>
      <guid isPermaLink="true">https://panpro.tistory.com/454</guid>
      <comments>https://panpro.tistory.com/454#entry454comment</comments>
      <pubDate>Sun, 29 Oct 2023 16:48:04 +0900</pubDate>
    </item>
    <item>
      <title>언리얼엔진 4 C++강좌 005 [actor-05] C++ 클래스의 재사용성 - 다른 프로젝트에서도 사용 가능할까?</title>
      <link>https://panpro.tistory.com/456</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;unreal_title-005.png&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/MziMO/btszjGOuuBB/mo95eq4zCoDhQKlPQ5o6K0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/MziMO/btszjGOuuBB/mo95eq4zCoDhQKlPQ5o6K0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/MziMO/btszjGOuuBB/mo95eq4zCoDhQKlPQ5o6K0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FMziMO%2FbtszjGOuuBB%2Fmo95eq4zCoDhQKlPQ5o6K0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1920&quot; height=&quot;1080&quot; data-filename=&quot;unreal_title-005.png&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;cpp01 프로젝트에서 LampActor 클래스를 만들어 동작하는 것까지 확인했는데, 이 클래스 헤더 파일과 cpp 파일을 복사해서 다른 프로젝트에 추가해 놓으면 똑같이 동작하도록 만들 수 있을까요?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;답은 물론 당연하다 입니다. 클래스를 만들어 쓰는 이유 중 하나가 재사용성 때문인데, 클래스 파일 복사해 놓으면 당연히 똑같이 동작해야지요.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;LampActor 클래스의 재사용성을 확인하기 위해 새로운 프로젝트를 만들고 그 프로젝트에서 LampActor 클래스를 재사용하는 방법을 보여줍니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사실 한가지만 신경쓰면 되는데, 헤더 파일에&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1698560971489&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;//LampActor.h

UCLASS()
class CPP01_API ALampActor : public AActor
{&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&quot;class&quot; 예약어 뒤에 CPP01_API 처럼 기존 프로젝트의 프로젝트명이 들어가 있는데, 이걸 지금 프로젝트 명으로 바꿔주면 됩니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1698561075072&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;class CPP02_API ALampActor : public AActor&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게요.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure data-ke-type=&quot;video&quot; data-ke-style=&quot;alignCenter&quot; data-video-host=&quot;youtube&quot; data-video-url=&quot;https://www.youtube.com/watch?v=pE5d-_oMC0o&quot; data-video-thumbnail=&quot;https://scrap.kakaocdn.net/dn/XsKh2/hyUu3Hz7lO/suKrI4BmNc6X3Ilqw6RdB0/img.jpg?width=1280&amp;amp;height=720&amp;amp;face=0_0_1280_720&quot; data-video-width=&quot;860&quot; data-video-height=&quot;484&quot; data-video-origin-width=&quot;860&quot; data-video-origin-height=&quot;484&quot; data-ke-mobilestyle=&quot;widthContent&quot; data-video-title=&quot;언리얼엔진 4 C++강좌 005 [actor-05] C++ 클래스의 재사용성 - 다른 프로젝트에서도 사용 가능할까?&quot; data-original-url=&quot;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/pE5d-_oMC0o&quot; width=&quot;860&quot; height=&quot;484&quot; frameborder=&quot;&quot; allowfullscreen=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;figcaption style=&quot;display: none;&quot;&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>프로그래밍/언리얼엔진</category>
      <category>C++</category>
      <category>강좌</category>
      <category>언리얼 c++</category>
      <category>언리얼엔진</category>
      <author>panpro</author>
      <guid isPermaLink="true">https://panpro.tistory.com/456</guid>
      <comments>https://panpro.tistory.com/456#entry456comment</comments>
      <pubDate>Sun, 29 Oct 2023 15:31:59 +0900</pubDate>
    </item>
    <item>
      <title>언리얼엔진 4 C++강좌 006 [actor-06] 에디터에서 설정하면 실시간으로 액터에 반영되도록 하기</title>
      <link>https://panpro.tistory.com/455</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;unreal_title-006.png&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/pP8E6/btszlJXFriG/Yz6Qq3yZ3u0ECutFkVABjK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/pP8E6/btszlJXFriG/Yz6Qq3yZ3u0ECutFkVABjK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/pP8E6/btszlJXFriG/Yz6Qq3yZ3u0ECutFkVABjK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FpP8E6%2FbtszlJXFriG%2FYz6Qq3yZ3u0ECutFkVABjK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1920&quot; height=&quot;1080&quot; data-filename=&quot;unreal_title-006.png&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;에디터에서 빛의 세기를 바꾸면 실시간으로 그 값이 클래스의 인스턴스에서 반영되도록 수정해 봅니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;827&quot; data-origin-height=&quot;422&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bFQd6p/btszj7d9lXn/anG2Ao0khe6NpvdiK2BHU1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bFQd6p/btszj7d9lXn/anG2Ao0khe6NpvdiK2BHU1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bFQd6p/btszj7d9lXn/anG2Ao0khe6NpvdiK2BHU1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbFQd6p%2Fbtszj7d9lXn%2FanG2Ao0khe6NpvdiK2BHU1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;827&quot; height=&quot;422&quot; data-origin-width=&quot;827&quot; data-origin-height=&quot;422&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 그림과 같이 우리가 만든 클래스에 빛의 세기를 조절하는 변수를 둘 수 있고, 에디터에서 보여줄 수도 있는데,&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;에디터에서 &quot;빛의 세기&quot; 값을 조절해도 에디트 중에는 그 값이 실시간으로 보여지질 않습니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그러니까, &quot;빛의 세기&quot; 값을 바꾸면 에디트 타임에도 반영이 되었으면 하는 것이죠.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이게 언리얼엔진과 c++에서 가능합니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1698561528225&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// LampActor.h

virtual void PostEditChangeProperty(FPropertyChangedEvent&amp;amp; PropertyChangedEvent) override;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위와 같이 헤더 파일에 PostEditChangeProperty 함수를 선언하고,&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1698561603159&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// LampActor.cpp

#if WITH_EDITOR
void ALampActor::PostEditChangeProperty(FPropertyChangedEvent&amp;amp; PropertyChangedEvent)
{
	m_pLight-&amp;gt;SetIntensity(m_nLightIntensity);

	Super::PostEditChangeProperty(PropertyChangedEvent);
}
#endif&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;cpp 파일에서 #if WITH_EDITOR 로 감싸서 위와 같이 에디터에서 값이 변경될 때 실행할 내용을 적어주면 됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #666666; text-align: start;&quot;&gt;전체 소스코드 github:&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;a href=&quot;https://github.com/easyprogstudy/ue4cppS01&quot;&gt;https://github.com/easyprogstudy/ue4cppS01&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1698561679152&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;object&quot; data-og-title=&quot;GitHub - easyprogstudy/ue4cppS01: Unreal Engine 4 C++ study&quot; data-og-description=&quot;Unreal Engine 4 C++ study. Contribute to easyprogstudy/ue4cppS01 development by creating an account on GitHub.&quot; data-og-host=&quot;github.com&quot; data-og-source-url=&quot;https://github.com/easyprogstudy/ue4cppS01&quot; data-og-url=&quot;https://github.com/easyprogstudy/ue4cppS01&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/h2fIh/hyUki6Jpqz/oLGFbkULQa8tX4kQOE1EK0/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600&quot;&gt;&lt;a href=&quot;https://github.com/easyprogstudy/ue4cppS01&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://github.com/easyprogstudy/ue4cppS01&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/h2fIh/hyUki6Jpqz/oLGFbkULQa8tX4kQOE1EK0/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;GitHub - easyprogstudy/ue4cppS01: Unreal Engine 4 C++ study&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Unreal Engine 4 C++ study. Contribute to easyprogstudy/ue4cppS01 development by creating an account on GitHub.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;github.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure data-ke-type=&quot;video&quot; data-ke-style=&quot;alignCenter&quot; data-video-host=&quot;youtube&quot; data-video-url=&quot;https://www.youtube.com/watch?v=SswZKW_bTnA&quot; data-video-thumbnail=&quot;https://scrap.kakaocdn.net/dn/dgrqz3/hyUu3t2eZT/bXMahs10EvLCc4SRMD9rj0/img.jpg?width=1280&amp;amp;height=720&amp;amp;face=0_0_1280_720&quot; data-video-width=&quot;860&quot; data-video-height=&quot;484&quot; data-video-origin-width=&quot;860&quot; data-video-origin-height=&quot;484&quot; data-ke-mobilestyle=&quot;widthContent&quot; data-original-url=&quot;&quot; data-video-title=&quot;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/SswZKW_bTnA&quot; width=&quot;860&quot; height=&quot;484&quot; frameborder=&quot;&quot; allowfullscreen=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;figcaption style=&quot;display: none;&quot;&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>프로그래밍/언리얼엔진</category>
      <category>C++</category>
      <category>Unreal</category>
      <category>unrealengine</category>
      <category>강의</category>
      <category>강좌</category>
      <category>국문</category>
      <category>언리얼</category>
      <category>언리얼엔진</category>
      <category>한글</category>
      <author>panpro</author>
      <guid isPermaLink="true">https://panpro.tistory.com/455</guid>
      <comments>https://panpro.tistory.com/455#entry455comment</comments>
      <pubDate>Sun, 29 Oct 2023 15:22:13 +0900</pubDate>
    </item>
    <item>
      <title>언리얼엔진 4 C++강좌 003 [actor-03] 로그 남기는 방법</title>
      <link>https://panpro.tistory.com/452</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;unreal_title-003.png&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/x6kgD/btsyYmI1eNz/kMBNnxiSecVkKy3Xr9vQFK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/x6kgD/btsyYmI1eNz/kMBNnxiSecVkKy3Xr9vQFK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/x6kgD/btsyYmI1eNz/kMBNnxiSecVkKy3Xr9vQFK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fx6kgD%2FbtsyYmI1eNz%2FkMBNnxiSecVkKy3Xr9vQFK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1920&quot; height=&quot;1080&quot; data-filename=&quot;unreal_title-003.png&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;언리얼엔진 4에서 c++를 이용해 로그를 남기거나, 화면에 메시지를 보여주는 방법을 배워 봅니다.&lt;br /&gt;&lt;br /&gt;&amp;nbsp;- UE_LOG 함수로 로그 남기기 &lt;br /&gt;&amp;nbsp;- AddOnScreenDebugMessage 함수로 화면에 메시지 보이기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1698060662909&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// MyActor.cpp
void AMyActor::BeginPlay()
{
	Super::BeginPlay();

	UE_LOG(LogBlueprint, Warning, TEXT(&quot;in BeginPlay. speed = %f&quot;), speed);
	GEngine-&amp;gt;AddOnScreenDebugMessage(-1, 5.0f, FColor::Yellow, TEXT(&quot;in BeginPlay&quot;));
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위와 같이 UE_LOG() 함수를 이용해 로그를 남길 수 있고,&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;GEngine-&amp;gt;AddOnScreenDebugMessage() 함수를 이용해 게임 화면에 메시지를 보여줄 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure data-ke-type=&quot;video&quot; data-ke-style=&quot;alignCenter&quot; data-video-host=&quot;youtube&quot; data-video-url=&quot;https://www.youtube.com/watch?v=Yj2WRfhloQg&quot; data-video-thumbnail=&quot;https://scrap.kakaocdn.net/dn/lySE0/hyUj8awmxe/Hm9oHjQbXz2MieKvKcEARk/img.jpg?width=1280&amp;amp;height=720&amp;amp;face=0_0_1280_720&quot; data-video-width=&quot;860&quot; data-video-height=&quot;484&quot; data-video-origin-width=&quot;860&quot; data-video-origin-height=&quot;484&quot; data-ke-mobilestyle=&quot;widthContent&quot; data-video-title=&quot;언리얼엔진 4 C++강좌 003 [actor-03] 로그 남기는 방법&quot; data-original-url=&quot;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/Yj2WRfhloQg&quot; width=&quot;860&quot; height=&quot;484&quot; frameborder=&quot;&quot; allowfullscreen=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;figcaption style=&quot;display: none;&quot;&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>프로그래밍/언리얼엔진</category>
      <author>panpro</author>
      <guid isPermaLink="true">https://panpro.tistory.com/452</guid>
      <comments>https://panpro.tistory.com/452#entry452comment</comments>
      <pubDate>Mon, 23 Oct 2023 20:32:58 +0900</pubDate>
    </item>
    <item>
      <title>언리얼엔진 4 C++강좌 002 [actor-02] Actor를 움직여보자</title>
      <link>https://panpro.tistory.com/451</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;cpp002.webp&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;720&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/2HIbn/btsyU8XxKtR/DmwKJyjgp60RopFKfyBQkK/img.webp&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/2HIbn/btsyU8XxKtR/DmwKJyjgp60RopFKfyBQkK/img.webp&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/2HIbn/btsyU8XxKtR/DmwKJyjgp60RopFKfyBQkK/img.webp&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F2HIbn%2FbtsyU8XxKtR%2FDmwKJyjgp60RopFKfyBQkK%2Fimg.webp&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1280&quot; height=&quot;720&quot; data-filename=&quot;cpp002.webp&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;720&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d; text-align: start;&quot;&gt;언리얼엔진 4 c++ 강좌입니다. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d; text-align: start;&quot;&gt;두번째 시간으로 c++로 만든 actor를 tick() 함수를 이용해 움직여 봅니다. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d; text-align: start;&quot;&gt;&amp;nbsp;- &lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d; text-align: start;&quot;&gt;엑터가 움직이는 속도를 에디터에서 조절하게 만들기 &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d; text-align: start;&quot;&gt;&amp;nbsp;- &lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d; text-align: start;&quot;&gt;에디터의 카테고리 등에 한글 사용하는 방법 &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d; text-align: start;&quot;&gt;&amp;nbsp;- &lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d; text-align: start;&quot;&gt;c++로 만든 함수를 블루프린트에서도 실행하도록 만들기&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d; text-align: start;&quot;&gt;언리얼엔진 4 c++에서 액터에 움직임을 주려면 Tick() 함수 안에 움직임을 적어주면 됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1698060147796&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// MyActor.cpp

void AMyActor::Tick(float DeltaTime)
{
	Super::Tick(DeltaTime);

	FVector newLocation = GetActorLocation();
	newLocation.Y += speed;
	SetActorLocation(newLocation);
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위와 같이 Tick() 함수 안에 움직임을 적어 액터가 움직이게 해 줄 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d; text-align: start;&quot;&gt;소스코드: &lt;a href=&quot;https://github.com/easyprogstudy/ue4cppS01&quot;&gt;https://github.com/easyprogstudy/ue4cppS01&lt;/a&gt; &lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d; text-align: start;&quot;&gt;2번째 커밋&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure data-ke-type=&quot;video&quot; data-ke-style=&quot;alignCenter&quot; data-video-host=&quot;youtube&quot; data-video-url=&quot;https://www.youtube.com/watch?v=-KwaVBBHPI8&quot; data-video-thumbnail=&quot;https://scrap.kakaocdn.net/dn/byPwpL/hyUgS0Qlya/T0gvNmgkIefXmTP8AZO8VK/img.jpg?width=1280&amp;amp;height=720&amp;amp;face=0_0_1280_720&quot; data-video-width=&quot;860&quot; data-video-height=&quot;484&quot; data-video-origin-width=&quot;860&quot; data-video-origin-height=&quot;484&quot; data-ke-mobilestyle=&quot;widthContent&quot; data-original-url=&quot;&quot; data-video-title=&quot;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/-KwaVBBHPI8&quot; width=&quot;860&quot; height=&quot;484&quot; frameborder=&quot;&quot; allowfullscreen=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;figcaption style=&quot;display: none;&quot;&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>프로그래밍/언리얼엔진</category>
      <author>panpro</author>
      <guid isPermaLink="true">https://panpro.tistory.com/451</guid>
      <comments>https://panpro.tistory.com/451#entry451comment</comments>
      <pubDate>Sat, 21 Oct 2023 16:50:15 +0900</pubDate>
    </item>
    <item>
      <title>언리얼엔진 4 C++강좌 001 [actor-01] Actor 클래스 생성해 보기</title>
      <link>https://panpro.tistory.com/450</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;cpp001.jpg&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;720&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dossxb/btsyTtVXGyg/wkOMAatsbToiyJKoSO2c91/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dossxb/btsyTtVXGyg/wkOMAatsbToiyJKoSO2c91/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dossxb/btsyTtVXGyg/wkOMAatsbToiyJKoSO2c91/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdossxb%2FbtsyTtVXGyg%2FwkOMAatsbToiyJKoSO2c91%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1280&quot; height=&quot;720&quot; data-filename=&quot;cpp001.jpg&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;720&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d; text-align: start;&quot;&gt;언리얼엔진 4 c++ 강좌입니다. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d; text-align: start;&quot;&gt;첫 번째 시간으로 c++로 Actor 클래스를 만들고 static mesh component를 추가합니다. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d; text-align: start;&quot;&gt;그리고 에디터에서 mesh를 바꿔보기도 하고 material도 설정해 봅니다. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d; text-align: start;&quot;&gt;그리고 항상 에디터에서 mesh를 바꿔줄 수는 없기 때문에 Actor 클래스 내에서 static mesh를 결정해 주는 방법도 배워봅니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d; text-align: start;&quot;&gt;먼저 static mesh를 위해 UStaticMeshComponent 컴포넌트를 추가해 줍니다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1698059683587&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// MyActor.h파일

UPROPERTY(EditAnywhere)
UStaticMeshComponent* pMeshComp;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;생성자에 아래와 같이 컴퍼넌트를 생성하고, UStaticMesh를 생성해서 컴퍼넌트에 그 UStaticMesh를 추가해 준다.&lt;/p&gt;
&lt;pre id=&quot;code_1698059830315&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// MyActor.cpp

AMyActor::AMyActor()
{
 	// Set this actor to call Tick() every frame.  You can turn this off to improve performance if you don't need it.
	PrimaryActorTick.bCanEverTick = true;

	pMeshComp = CreateDefaultSubobject&amp;lt;UStaticMeshComponent&amp;gt;(TEXT(&quot;My Mesh Component&quot;));
	UStaticMesh* pMesh = ConstructorHelpers::FObjectFinder&amp;lt;UStaticMesh&amp;gt;(TEXT(&quot;StaticMesh'/Engine/BasicShapes/Cube.Cube'&quot;)).Object;
	pMeshComp-&amp;gt;SetStaticMesh(pMesh);
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d; text-align: start;&quot;&gt;소스코드: &lt;a href=&quot;https://github.com/easyprogstudy/ue4cppS01&quot;&gt;https://github.com/easyprogstudy/ue4cppS01&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1697874350020&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;object&quot; data-og-title=&quot;GitHub - easyprogstudy/ue4cppS01: Unreal Engine 4 C++ study&quot; data-og-description=&quot;Unreal Engine 4 C++ study. Contribute to easyprogstudy/ue4cppS01 development by creating an account on GitHub.&quot; data-og-host=&quot;github.com&quot; data-og-source-url=&quot;https://github.com/easyprogstudy/ue4cppS01&quot; data-og-url=&quot;https://github.com/easyprogstudy/ue4cppS01&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/3DGTM/hyUgG0qLVK/it1K1vVSrOjKLGUJhhTR7K/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600&quot;&gt;&lt;a href=&quot;https://github.com/easyprogstudy/ue4cppS01&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://github.com/easyprogstudy/ue4cppS01&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/3DGTM/hyUgG0qLVK/it1K1vVSrOjKLGUJhhTR7K/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;GitHub - easyprogstudy/ue4cppS01: Unreal Engine 4 C++ study&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Unreal Engine 4 C++ study. Contribute to easyprogstudy/ue4cppS01 development by creating an account on GitHub.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;github.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure data-ke-type=&quot;video&quot; data-ke-style=&quot;alignCenter&quot; data-video-host=&quot;youtube&quot; data-video-url=&quot;https://www.youtube.com/watch?v=jrvnLwWJHe8&quot; data-video-thumbnail=&quot;https://scrap.kakaocdn.net/dn/bICKpZ/hyUgOKWRyo/NZHRNPkxjTAzkbYbNWPOLK/img.jpg?width=1280&amp;amp;height=720&amp;amp;face=0_0_1280_720&quot; data-video-width=&quot;860&quot; data-video-height=&quot;484&quot; data-video-origin-width=&quot;860&quot; data-video-origin-height=&quot;484&quot; data-ke-mobilestyle=&quot;widthContent&quot; data-original-url=&quot;&quot; data-video-title=&quot;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/jrvnLwWJHe8&quot; width=&quot;860&quot; height=&quot;484&quot; frameborder=&quot;&quot; allowfullscreen=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;figcaption style=&quot;display: none;&quot;&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>프로그래밍/언리얼엔진</category>
      <category>C++</category>
      <category>Unreal</category>
      <category>Unreal Engine</category>
      <category>강의</category>
      <category>강좌</category>
      <category>한글</category>
      <author>panpro</author>
      <guid isPermaLink="true">https://panpro.tistory.com/450</guid>
      <comments>https://panpro.tistory.com/450#entry450comment</comments>
      <pubDate>Sat, 21 Oct 2023 16:47:00 +0900</pubDate>
    </item>
    <item>
      <title>언리얼엔진 4 C++ 강의를 시작합니다.</title>
      <link>https://panpro.tistory.com/449</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1413&quot; data-origin-height=&quot;787&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bTIc3R/btsyR9XKAqP/A9D491YJZ20vqmBk4VYut0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bTIc3R/btsyR9XKAqP/A9D491YJZ20vqmBk4VYut0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bTIc3R/btsyR9XKAqP/A9D491YJZ20vqmBk4VYut0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbTIc3R%2FbtsyR9XKAqP%2FA9D491YJZ20vqmBk4VYut0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1413&quot; height=&quot;787&quot; data-origin-width=&quot;1413&quot; data-origin-height=&quot;787&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d; text-align: start;&quot;&gt;언리얼엔진4 c++ 강의를 시작합니다. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d; text-align: start;&quot;&gt;대상:&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d; text-align: start;&quot;&gt;언리얼엔진을 blueprint로는 사용하실 수 있어야 합니다. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d; text-align: start;&quot;&gt;언리얼엔진을 따로 알려드리지 않습니다. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d; text-align: start;&quot;&gt;또 C++에 대해서도 따로 알려드리지 않으니 C++도 하셔야 합니다. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d; text-align: start;&quot;&gt;그렇다고 제가 초보자를 위한 강의를 멈춘 건 아닙니다. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d; text-align: start;&quot;&gt;지금 계속 초보자를 위한 강의(블루프린트 버전)을 준비 중 입니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure data-ke-type=&quot;video&quot; data-ke-style=&quot;alignCenter&quot; data-video-host=&quot;youtube&quot; data-video-url=&quot;https://www.youtube.com/watch?v=VioZbjHJw9c&quot; data-video-thumbnail=&quot;https://scrap.kakaocdn.net/dn/cbRQTW/hyUgTZLdJm/5FWwF8vKeepkfzbYnZwPaK/img.jpg?width=640&amp;amp;height=480&amp;amp;face=0_0_640_480&quot; data-video-width=&quot;640&quot; data-video-height=&quot;480&quot; data-video-origin-width=&quot;640&quot; data-video-origin-height=&quot;480&quot; data-ke-mobilestyle=&quot;widthContent&quot; data-video-title=&quot;언리얼엔진4 c++ 강의를 시작합니다.&quot; data-original-url=&quot;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/VioZbjHJw9c&quot; width=&quot;640&quot; height=&quot;480&quot; frameborder=&quot;&quot; allowfullscreen=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;figcaption style=&quot;display: none;&quot;&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>프로그래밍/언리얼엔진</category>
      <author>panpro</author>
      <guid isPermaLink="true">https://panpro.tistory.com/449</guid>
      <comments>https://panpro.tistory.com/449#entry449comment</comments>
      <pubDate>Sat, 21 Oct 2023 16:42:30 +0900</pubDate>
    </item>
    <item>
      <title>xamarin 강좌 020. Custom Native Control 만들기(4) - Native Control의 event를 xaml 파일까지 넘기기</title>
      <link>https://panpro.tistory.com/448</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot; data-filename=&quot;title-020_1080p.png&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bw6VQq/btqS6WRB83H/9HxS8SSjKyTlyRNDqgt9tK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bw6VQq/btqS6WRB83H/9HxS8SSjKyTlyRNDqgt9tK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bw6VQq/btqS6WRB83H/9HxS8SSjKyTlyRNDqgt9tK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbw6VQq%2FbtqS6WRB83H%2F9HxS8SSjKyTlyRNDqgt9tK%2Fimg.png&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot; data-filename=&quot;title-020_1080p.png&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span&gt;xamarin 20번째,&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span&gt;xamarin에서 Custom Native Control 만들기 4번째 시간으로, &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span&gt;native control에서 발생시킨 event를 renderer가 받고, 그걸 다시 view가 받고, 그 이벤트를 다시 xaml 파일에서 쓸 수 있도록 하는 과정을 설명합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span&gt;여기까지 하시면 우리가 원했던, xaml 파일에서 native control에 속성값을 전달하고, native control에서 발생한 event를 .xaml.cs 파일에서 처리할 수 있게 됩니다. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span&gt;그래서 드디어 우리가 만든 콘트롤을&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span&gt;&amp;lt;local:MyView ButtonText=&quot;버튼테스트&quot; OnButtonClicked=&quot;clicked&quot;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span&gt; 와 같은 식으로 xaml 파일에서 사용할 수 있게 됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span&gt;관련 강의: &lt;/span&gt;&lt;a href=&quot;https://youtu.be/3Ahb92W7jRE&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;youtu.be/3Ahb92W7jRE&lt;/a&gt;&lt;/p&gt;
&lt;figure data-ke-type=&quot;video&quot; data-ke-style=&quot;alignCenter&quot; data-video-host=&quot;youtube&quot; data-video-url=&quot;https://www.youtube.com/watch?v=3Ahb92W7jRE&amp;amp;feature=youtu.be&quot; data-video-thumbnail=&quot;https://scrap.kakaocdn.net/dn/skD5K/hyIHKfxiRB/QlAgZLkGPgiCd0YOO4dMDk/img.jpg?width=1280&amp;amp;height=720&amp;amp;face=0_0_1280_720&quot; data-video-width=&quot;860&quot; data-video-height=&quot;484&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/3Ahb92W7jRE&quot; width=&quot;860&quot; height=&quot;484&quot; frameborder=&quot;&quot; allowfullscreen=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;figcaption&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>프로그래밍/xamarin</category>
      <category>App 개발</category>
      <category>앱 만드는 방법</category>
      <category>앱 프로그래밍</category>
      <category>앱강의</category>
      <category>앱개발</category>
      <category>자마린</category>
      <author>panpro</author>
      <guid isPermaLink="true">https://panpro.tistory.com/448</guid>
      <comments>https://panpro.tistory.com/448#entry448comment</comments>
      <pubDate>Sun, 10 Jan 2021 16:27:22 +0900</pubDate>
    </item>
    <item>
      <title>xamarin 강좌 019. Custom Native Control 만들기(3) - xaml 파일에서 속성값을 native control로 전달하기</title>
      <link>https://panpro.tistory.com/447</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;title-019_1080p.png&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/1Gl5v/btqRXIHajrv/bG3WOcgplG1NwMyKrZMxWk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/1Gl5v/btqRXIHajrv/bG3WOcgplG1NwMyKrZMxWk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/1Gl5v/btqRXIHajrv/bG3WOcgplG1NwMyKrZMxWk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F1Gl5v%2FbtqRXIHajrv%2FbG3WOcgplG1NwMyKrZMxWk%2Fimg.png&quot; data-filename=&quot;title-019_1080p.png&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span&gt;xamarin 19번째,&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span&gt;xamarin에서 Custom Native Control 만들기 3번째 시간으로, &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span&gt;xamarin의 공통영역의 xaml 파일에서 속성값을 native control로 전달하는 방법을 설명합니다. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span&gt;xaml 파일에서 속성값을 정하면 그 값으로 초기화하겠다는 뜻이죠. 그렇게 값을 초기화할 때 제대로 값이 넘어가는 방법을 알아봅니다. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span&gt;OnElementChanged() &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span&gt;OnElementPropertyChanged() &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span&gt;renderer에서 위 두 함수를 override 해서 사용해 xaml 파일에서 설정한 값을 native control로 전달합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure data-ke-type=&quot;video&quot; data-ke-style=&quot;alignCenter&quot; data-video-host=&quot;youtube&quot; data-video-url=&quot;https://www.youtube.com/watch?v=D-NRAQQ59mQ&quot; data-video-thumbnail=&quot;https://scrap.kakaocdn.net/dn/bg1x9h/hyIHMqTyU4/M0ElYnQOUp3bf8068r9tH0/img.jpg?width=1280&amp;amp;height=720&amp;amp;face=0_0_1280_720&quot; data-video-width=&quot;860&quot; data-video-height=&quot;484&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/D-NRAQQ59mQ&quot; width=&quot;860&quot; height=&quot;484&quot; frameborder=&quot;&quot; allowfullscreen=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;figcaption&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>프로그래밍/xamarin</category>
      <category>App 개발</category>
      <category>custom control</category>
      <category>native control</category>
      <category>xamarin</category>
      <category>무료 강의</category>
      <category>앱 개발</category>
      <category>앱 개발 강의</category>
      <category>앱 만드는 방법</category>
      <category>앱 프로그래밍</category>
      <category>자마린</category>
      <author>panpro</author>
      <guid isPermaLink="true">https://panpro.tistory.com/447</guid>
      <comments>https://panpro.tistory.com/447#entry447comment</comments>
      <pubDate>Thu, 31 Dec 2020 01:05:46 +0900</pubDate>
    </item>
    <item>
      <title>xamarin 강좌 018. Custom Native Control 만들기(2) - View, Renderer, Native Control 뼈대 만들기</title>
      <link>https://panpro.tistory.com/446</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot; data-filename=&quot;title-018_1080p.png&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/xqX54/btqRTSvZeUU/K7ljpAG9IShkEYfOVhqkX0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/xqX54/btqRTSvZeUU/K7ljpAG9IShkEYfOVhqkX0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/xqX54/btqRTSvZeUU/K7ljpAG9IShkEYfOVhqkX0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FxqX54%2FbtqRTSvZeUU%2FK7ljpAG9IShkEYfOVhqkX0%2Fimg.png&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot; data-filename=&quot;title-018_1080p.png&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;xamarin 18번째 강의로,&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;지난 시간 View, Renderer, Native Control 각각에 대한 설명에 이어&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;본격적으로 view, renderer, native control을 각각 만들어 봅니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;이번 시간에는 동작할 수 있는 아주 최소한의 코드만 작성하면서&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;view, renderer, native control에 대해 기초적인 것들을 알아봅니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure data-ke-type=&quot;video&quot; data-ke-style=&quot;alignCenter&quot; data-video-host=&quot;youtube&quot; data-video-url=&quot;https://www.youtube.com/watch?v=5HpUhHtNznQ&quot; data-video-thumbnail=&quot;https://scrap.kakaocdn.net/dn/bZmTwU/hyIHF6mQKq/8cnQa2gtZzqRKeKFPu55M0/img.jpg?width=1280&amp;amp;height=720&amp;amp;face=0_0_1280_720&quot; data-video-width=&quot;860&quot; data-video-height=&quot;484&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/5HpUhHtNznQ&quot; width=&quot;860&quot; height=&quot;484&quot; frameborder=&quot;&quot; allowfullscreen=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;figcaption&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>프로그래밍/xamarin</category>
      <category>component</category>
      <category>custom control</category>
      <category>xamarin</category>
      <category>앱 개발</category>
      <category>앱 프로그래밍</category>
      <category>커스텀 컨트롤</category>
      <category>컨트롤</category>
      <category>컴포넌트</category>
      <category>콘트롤</category>
      <category>프로그래밍</category>
      <author>panpro</author>
      <guid isPermaLink="true">https://panpro.tistory.com/446</guid>
      <comments>https://panpro.tistory.com/446#entry446comment</comments>
      <pubDate>Wed, 30 Dec 2020 00:33:44 +0900</pubDate>
    </item>
    <item>
      <title>xamarin 강좌 017. Custom Native Control 만들기(1) - View, Renderer, Native Control 의 차이</title>
      <link>https://panpro.tistory.com/445</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;title-017_1080p.png&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/BLUsE/btqROelmL2a/lzq7dW3CLH0dFTKcMLQwBK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/BLUsE/btqROelmL2a/lzq7dW3CLH0dFTKcMLQwBK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/BLUsE/btqROelmL2a/lzq7dW3CLH0dFTKcMLQwBK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FBLUsE%2FbtqROelmL2a%2Flzq7dW3CLH0dFTKcMLQwBK%2Fimg.png&quot; data-filename=&quot;title-017_1080p.png&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;xamarin 17번째 강의로,&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span&gt;xamain에서 나만의 custom native control을 만드는 방법을 4회에 걸쳐 설명합니다. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span&gt;native control은 platform dependent하게 해당 platform에서 제공하는 control들을 말합니다. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span&gt;내가 새로운 native control을 만들면 그걸 사용하기 위해, &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span&gt;xamarin영역에서 view를 만들고, &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span&gt;platform 영역에서 renderer를 만들어 &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span&gt;view와 native control을 연결해 줘야합니다. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span&gt;이번 강의에서는 xamarin의 element 중, &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span&gt;native control을 보여주는 추상 영역인 view, &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span&gt;view와 native control을 이어주는 renderer, &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span&gt;그리고 native control의 차이를 설명합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure data-ke-type=&quot;video&quot; data-ke-style=&quot;alignCenter&quot; data-video-host=&quot;youtube&quot; data-video-url=&quot;https://www.youtube.com/watch?v=VtBAfSNIDDI&quot; data-video-thumbnail=&quot;https://scrap.kakaocdn.net/dn/kmS5L/hyIHHpweXk/QZAmVMG0tXIex8gLDZAvjk/img.jpg?width=1280&amp;amp;height=720&amp;amp;face=0_0_1280_720&quot; data-video-width=&quot;860&quot; data-video-height=&quot;484&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/VtBAfSNIDDI&quot; width=&quot;860&quot; height=&quot;484&quot; frameborder=&quot;&quot; allowfullscreen=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;figcaption&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>프로그래밍/xamarin</category>
      <category>app programming</category>
      <category>custom control</category>
      <category>xamarin</category>
      <category>앱 프로그래밍</category>
      <category>앱개발</category>
      <category>자마린</category>
      <author>panpro</author>
      <guid isPermaLink="true">https://panpro.tistory.com/445</guid>
      <comments>https://panpro.tistory.com/445#entry445comment</comments>
      <pubDate>Tue, 29 Dec 2020 01:37:33 +0900</pubDate>
    </item>
    <item>
      <title>xamarin 강좌 016. data binding 2 - 내가 만든 클래스와 xaml 데이터 바인딩</title>
      <link>https://panpro.tistory.com/444</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;xamarin016.png&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;720&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bvm68I/btqRt5XLOzi/l5V0Un93K0Eh6eqMXlVCP0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bvm68I/btqRt5XLOzi/l5V0Un93K0Eh6eqMXlVCP0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bvm68I/btqRt5XLOzi/l5V0Un93K0Eh6eqMXlVCP0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbvm68I%2FbtqRt5XLOzi%2Fl5V0Un93K0Eh6eqMXlVCP0%2Fimg.png&quot; data-filename=&quot;xamarin016.png&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;720&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;xamarin 16번째 강의로,&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span&gt;데이터를 위해 새로 만든 데이터 클래스와 xaml 파일에서 데이터 바인딩을 하기 위해 PropertyChanged를 실행하는 것을 공부합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span&gt;xaml 파일과 xaml.cs 파일이 사실은 하나의 클래스를 이루기 때문에 data binding이 이미 준비되어 있었지만,&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;내가 새로 만든 데이터를 위한 클래스(CData 클래스)와 xaml 파일은 연결점이 (당연히) 없기 때문에 직접 연결되도록(바인딩되도록) 작업해 줘야 해요.&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;그 과정을 공부해 봅니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure data-ke-type=&quot;video&quot; data-ke-style=&quot;alignCenter&quot; data-video-host=&quot;youtube&quot; data-video-url=&quot;https://www.youtube.com/watch?v=Z_muufA1-lI&quot; data-video-thumbnail=&quot;https://scrap.kakaocdn.net/dn/bPIqL9/hyIHI9LMG9/3KHpzRCG6qd8oiN8CdtOAK/img.jpg?width=1280&amp;amp;height=720&amp;amp;face=0_0_1280_720&quot; data-video-width=&quot;860&quot; data-video-height=&quot;484&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/Z_muufA1-lI&quot; width=&quot;860&quot; height=&quot;484&quot; frameborder=&quot;&quot; allowfullscreen=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;figcaption&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>프로그래밍/xamarin</category>
      <category>App 개발</category>
      <category>Binding</category>
      <category>xamarin</category>
      <category>데이터 바인딩</category>
      <category>바인딩</category>
      <category>앱 개발</category>
      <category>앱 프로그래밍</category>
      <category>크로스 플랫폼</category>
      <author>panpro</author>
      <guid isPermaLink="true">https://panpro.tistory.com/444</guid>
      <comments>https://panpro.tistory.com/444#entry444comment</comments>
      <pubDate>Mon, 28 Dec 2020 00:08:41 +0900</pubDate>
    </item>
    <item>
      <title>xamarin 강좌 015. data binding 1 - xaml과 xaml.cs 파일과의 연계</title>
      <link>https://panpro.tistory.com/443</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;015.binding.png&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;720&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/YzfXn/btqRGpm3if5/A47Z38fXHqkfKd7g2HQKi0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/YzfXn/btqRGpm3if5/A47Z38fXHqkfKd7g2HQKi0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/YzfXn/btqRGpm3if5/A47Z38fXHqkfKd7g2HQKi0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FYzfXn%2FbtqRGpm3if5%2FA47Z38fXHqkfKd7g2HQKi0%2Fimg.png&quot; data-filename=&quot;015.binding.png&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;720&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;xamarin 15번째 강좌로,&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;UI를 기술하는 xaml 파일과 그 xaml 파일과 연결한 xaml.cs 파일간 서로 값이 연결되는 binding 에 대해 설명합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;xamarin을 사용하면 거의 반드시 하나 이상의 xaml 파일과 그와 연결된 xaml.cs 파일을 사용해야 하는데요,&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;xaml 파일은 UI를&amp;nbsp;담당하고,&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;xaml.cs 파일은 기능을 담당합니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;이렇게 나뉘어진 이유는 디자인과 코딩 부분을 구분하기 위해서인데,&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;다시 말하면 디자이너는 xaml 파일을 열어서 작업하고, 같은 시간에&amp;nbsp; 프로그래머는 디자이너와 미리 약속한 대로 코딩할 수 있도록 하기 위해서 입니다. 변수명 같은 게 미리 약속만 되어 있으면 디자이너와 프로그래머가 동시에 각각의 작업을 할 수 있는 거죠.&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;이렇게 각자 구분되어 작업된 변수들을 연결해 주는 작업이 바인딩이에요.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure data-ke-type=&quot;video&quot; data-ke-style=&quot;alignCenter&quot; data-video-host=&quot;youtube&quot; data-video-url=&quot;https://www.youtube.com/watch?v=s1txnPKHxP0&quot; data-video-thumbnail=&quot;https://scrap.kakaocdn.net/dn/EhQkC/hyIHOhCgGk/22VOewPJr1rhqR1Ni02tkk/img.jpg?width=480&amp;amp;height=360&amp;amp;face=0_0_480_360&quot; data-video-width=&quot;860&quot; data-video-height=&quot;645&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/s1txnPKHxP0&quot; width=&quot;860&quot; height=&quot;645&quot; frameborder=&quot;&quot; allowfullscreen=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;figcaption&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>프로그래밍/xamarin</category>
      <category>Cross Platform</category>
      <category>xamarin</category>
      <category>개발</category>
      <category>데이터 바인딩</category>
      <category>앱 프로그래밍</category>
      <category>앱개발</category>
      <category>크로스 플랫폼</category>
      <author>panpro</author>
      <guid isPermaLink="true">https://panpro.tistory.com/443</guid>
      <comments>https://panpro.tistory.com/443#entry443comment</comments>
      <pubDate>Sun, 27 Dec 2020 23:58:31 +0900</pubDate>
    </item>
    <item>
      <title>언리얼엔진 강좌 64 [damage-05] 데미지입다가 에너지가 0되면 죽기</title>
      <link>https://panpro.tistory.com/442</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;unreal_title-064.png&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/oAHRt/btqEN9exNLN/hFz6rg49hrQDoT3ui6J1W1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/oAHRt/btqEN9exNLN/hFz6rg49hrQDoT3ui6J1W1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/oAHRt/btqEN9exNLN/hFz6rg49hrQDoT3ui6J1W1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FoAHRt%2FbtqEN9exNLN%2FhFz6rg49hrQDoT3ui6J1W1%2Fimg.png&quot; data-filename=&quot;unreal_title-064.png&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;쌩초보를&amp;nbsp;위한&amp;nbsp;언리얼&amp;nbsp;엔진&amp;nbsp;4&amp;nbsp;강좌입니다. &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;소스코드: &lt;a href=&quot;https://github.com/easyprogstudy/unreal_damage&quot;&gt;https://github.com/easyprogstudy/unreal_damage&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;이번엔&amp;nbsp;단계별로&amp;nbsp;올리지&amp;nbsp;않고&amp;nbsp;최종&amp;nbsp;버전만&amp;nbsp;올려&amp;nbsp;놓았습니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;언리얼&amp;nbsp;엔진&amp;nbsp;강의&amp;nbsp;64번째, &lt;br /&gt;총쏘고&amp;nbsp;데미지&amp;nbsp;입기&amp;nbsp;시리즈의&amp;nbsp;5번째&amp;nbsp;시간입니다.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;적군이&amp;nbsp;총알에&amp;nbsp;맞을&amp;nbsp;때마다&amp;nbsp;데미지를&amp;nbsp;입게&amp;nbsp;되고,&amp;nbsp;데미지를&amp;nbsp;입을&amp;nbsp;때마다&amp;nbsp;에너지를&amp;nbsp;조금씩&amp;nbsp;줄이다가&amp;nbsp;에너지가&amp;nbsp;0이&amp;nbsp;되면&amp;nbsp;죽는&amp;nbsp;처리를&amp;nbsp;해보겠습니다.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;총알에&amp;nbsp;맞아&amp;nbsp;데미지를&amp;nbsp;입으면&amp;nbsp;에너지가&amp;nbsp;줄어들게&amp;nbsp;되고,&amp;nbsp; &lt;br /&gt;에너지바의&amp;nbsp;정보도&amp;nbsp;업데이트해야&amp;nbsp;하는데, &lt;br /&gt;&lt;br /&gt;BP_Enemy&amp;nbsp;에&amp;nbsp;에너지바가&amp;nbsp;붙어&amp;nbsp;있기는&amp;nbsp;하지만&amp;nbsp; &lt;br /&gt;BP_Enemy에&amp;nbsp;Widget이&amp;nbsp;있고,&amp;nbsp;그&amp;nbsp;안에&amp;nbsp;에너지바&amp;nbsp;UI가&amp;nbsp;있는&amp;nbsp;형태라서&amp;nbsp;BP_Enemy는&amp;nbsp;에너지바를&amp;nbsp;직접&amp;nbsp;알지&amp;nbsp;못해요. &lt;br /&gt;그래서&amp;nbsp;에너지바를&amp;nbsp;직접&amp;nbsp;업데이트&amp;nbsp;시킬&amp;nbsp;수가&amp;nbsp;없어요.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;그래서&amp;nbsp;BP_Enemy는&amp;nbsp;Widget한테&amp;nbsp;너가&amp;nbsp;가지고&amp;nbsp;있는&amp;nbsp;UI가&amp;nbsp;뭔지&amp;nbsp;알려&amp;nbsp;달라&amp;nbsp;해서&amp;nbsp;그&amp;nbsp;결과로&amp;nbsp;받은&amp;nbsp;에너지바에게&amp;nbsp;현재의&amp;nbsp;에너지를&amp;nbsp;다시&amp;nbsp;알려줍니다.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;GetUserWidgetObject&amp;nbsp;를&amp;nbsp;사용하면&amp;nbsp;됩니다.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;이렇게&amp;nbsp;에너지가&amp;nbsp;줄어드는&amp;nbsp;걸&amp;nbsp;에너지바에&amp;nbsp;알려주고&amp;nbsp;이러다가&amp;nbsp;에너지가&amp;nbsp;0이&amp;nbsp;되면&amp;nbsp;소멸되도록&amp;nbsp;합니다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure data-ke-type=&quot;video&quot; data-ke-style=&quot;alignCenter&quot; data-video-host=&quot;youtube&quot; data-video-url=&quot;https://www.youtube.com/watch?v=I18Gqk2jAqs&quot; data-video-thumbnail=&quot;https://scrap.kakaocdn.net/dn/bN6puN/hyGoVJ8Emb/4demjEDL6gGa9JQ5rdyZz1/img.jpg?width=1280&amp;amp;height=720&amp;amp;face=0_0_1280_720&quot; data-video-width=&quot;860&quot; data-video-height=&quot;484&quot; data-video-origin-width=&quot;860&quot; data-video-origin-height=&quot;484&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/I18Gqk2jAqs&quot; width=&quot;860&quot; height=&quot;484&quot; frameborder=&quot;&quot; allowfullscreen=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;figcaption&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;언리얼&amp;nbsp;엔진&amp;nbsp;버전:&amp;nbsp;4.25.0&lt;/span&gt;&lt;/p&gt;</description>
      <category>프로그래밍/언리얼엔진</category>
      <author>panpro</author>
      <guid isPermaLink="true">https://panpro.tistory.com/442</guid>
      <comments>https://panpro.tistory.com/442#entry442comment</comments>
      <pubDate>Sun, 14 Jun 2020 00:26:44 +0900</pubDate>
    </item>
    <item>
      <title>언리얼엔진 강좌 63 [damage-04]에너지바 만들어 적군에 달아주기</title>
      <link>https://panpro.tistory.com/441</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;unreal_title-063.png&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/KRFQn/btqEPtIMvQt/Zn1FYjlnpFQIbYZWpvuQok/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/KRFQn/btqEPtIMvQt/Zn1FYjlnpFQIbYZWpvuQok/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/KRFQn/btqEPtIMvQt/Zn1FYjlnpFQIbYZWpvuQok/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FKRFQn%2FbtqEPtIMvQt%2FZn1FYjlnpFQIbYZWpvuQok%2Fimg.png&quot; data-filename=&quot;unreal_title-063.png&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;쌩초보를&amp;nbsp;위한&amp;nbsp;언리얼&amp;nbsp;엔진&amp;nbsp;4&amp;nbsp;강좌입니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;언리얼&amp;nbsp;엔진&amp;nbsp;강의&amp;nbsp;63번째, &lt;br /&gt;총쏘고&amp;nbsp;데미지&amp;nbsp;입기&amp;nbsp;시리즈의&amp;nbsp;4번째&amp;nbsp;시간입니다.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;Enemy,&amp;nbsp;적군이&amp;nbsp;총알을&amp;nbsp;맞으면&amp;nbsp;에너지가&amp;nbsp;줄어들었다는&amp;nbsp;것을&amp;nbsp;시각적으로&amp;nbsp;보여주기&amp;nbsp;위해&amp;nbsp;거의&amp;nbsp;모든&amp;nbsp;프로그램이&amp;nbsp;에너지바를&amp;nbsp;표시해&amp;nbsp;줍니다.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;이번&amp;nbsp;시간에는&amp;nbsp;우리도&amp;nbsp;그&amp;nbsp;에너지바를&amp;nbsp;만들어&amp;nbsp;적군의&amp;nbsp;머리&amp;nbsp;위에&amp;nbsp;달아주겠습니다.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;BP_Enemy&amp;nbsp;적군&amp;nbsp;캐릭터에&amp;nbsp;Widget&amp;nbsp;컴포넌트를&amp;nbsp;추가하고, &lt;br /&gt;유저&amp;nbsp;인터페이스&amp;nbsp;-&amp;nbsp;위젯&amp;nbsp;블루프린트를&amp;nbsp;선택해서&amp;nbsp;실제&amp;nbsp;UI를&amp;nbsp;만들어&amp;nbsp;준&amp;nbsp;다음 &lt;br /&gt;Widget&amp;nbsp;컴퍼넌트에&amp;nbsp;실제&amp;nbsp;UI를&amp;nbsp;연결해&amp;nbsp;줍니다.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;이번&amp;nbsp;시간에는&amp;nbsp;이렇게&amp;nbsp;에너지바를&amp;nbsp;만들어&amp;nbsp;적군&amp;nbsp;머리&amp;nbsp;위에&amp;nbsp;올려주는&amp;nbsp;것까지&amp;nbsp;하고&amp;nbsp;다음&amp;nbsp;시간에&amp;nbsp;실제로&amp;nbsp;총알에&amp;nbsp;맞으면&amp;nbsp;에너지가&amp;nbsp;줄어들다가&amp;nbsp;죽는&amp;nbsp;부분의&amp;nbsp;블루프린트까지&amp;nbsp;완성하겠습니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure data-ke-type=&quot;video&quot; data-ke-style=&quot;alignCenter&quot; data-video-host=&quot;youtube&quot; data-video-url=&quot;https://www.youtube.com/watch?v=4TJe2yPxHFY&quot; data-video-thumbnail=&quot;https://scrap.kakaocdn.net/dn/bhl3Rf/hyGnWptSGZ/1AS5hGohj1OG46SRkfCbr0/img.jpg?width=1280&amp;amp;height=720&amp;amp;face=0_0_1280_720&quot; data-video-width=&quot;860&quot; data-video-height=&quot;484&quot; data-video-origin-width=&quot;860&quot; data-video-origin-height=&quot;484&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/4TJe2yPxHFY&quot; width=&quot;860&quot; height=&quot;484&quot; frameborder=&quot;&quot; allowfullscreen=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;figcaption&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;언리얼&amp;nbsp;엔진&amp;nbsp;버전:&amp;nbsp;4.25.0&lt;/p&gt;</description>
      <category>프로그래밍/언리얼엔진</category>
      <category>3D 게임 에너지 표시</category>
      <category>energy bar</category>
      <category>게임 에너지</category>
      <category>게임 에너지 표시 방법</category>
      <category>언리얼엔진</category>
      <category>에너지바</category>
      <author>panpro</author>
      <guid isPermaLink="true">https://panpro.tistory.com/441</guid>
      <comments>https://panpro.tistory.com/441#entry441comment</comments>
      <pubDate>Sat, 13 Jun 2020 00:22:37 +0900</pubDate>
    </item>
    <item>
      <title>언리얼엔진 강좌 62 [damage-03] 총알에 맞으면 데미지 주기</title>
      <link>https://panpro.tistory.com/440</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;unreal_title-062.png&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/beH2NF/btqEOPsje1o/IbqqVFoXdz1aFLoxdrkDT0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/beH2NF/btqEOPsje1o/IbqqVFoXdz1aFLoxdrkDT0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/beH2NF/btqEOPsje1o/IbqqVFoXdz1aFLoxdrkDT0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbeH2NF%2FbtqEOPsje1o%2FIbqqVFoXdz1aFLoxdrkDT0%2Fimg.png&quot; data-filename=&quot;unreal_title-062.png&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;쌩초보를&amp;nbsp;위한&amp;nbsp;언리얼&amp;nbsp;엔진&amp;nbsp;4&amp;nbsp;강좌입니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;언리얼&amp;nbsp;엔진&amp;nbsp;강의&amp;nbsp;62번째, &lt;br /&gt;총쏘고&amp;nbsp;데미지&amp;nbsp;입기&amp;nbsp;시리즈의&amp;nbsp;3번째&amp;nbsp;시간입니다.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;이번&amp;nbsp;시간에는&amp;nbsp;총에&amp;nbsp;맞을&amp;nbsp;객체,&amp;nbsp;적군,&amp;nbsp;Enemy를&amp;nbsp;Character&amp;nbsp;타입으로&amp;nbsp;만들어&amp;nbsp;봅니다.&amp;nbsp; &lt;br /&gt;그리고&amp;nbsp;그&amp;nbsp;Enemy를&amp;nbsp;향해&amp;nbsp;총을&amp;nbsp;쏴서&amp;nbsp;날아가는&amp;nbsp;총알에&amp;nbsp;닿게&amp;nbsp;만들어&amp;nbsp;줍니다.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;총알에&amp;nbsp;맞았으니&amp;nbsp;그&amp;nbsp;Enemy는&amp;nbsp;죽거나(소멸되거나),&amp;nbsp;혹은&amp;nbsp;에너지가&amp;nbsp;줄어들어들다가&amp;nbsp;에너지가&amp;nbsp;0이&amp;nbsp;되면&amp;nbsp;죽어야(소멸되어야)&amp;nbsp;합니다.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;그리고&amp;nbsp;총알도&amp;nbsp;무언가에&amp;nbsp;닿으면&amp;nbsp;DestroyActor(Self)&amp;nbsp;함수로&amp;nbsp;소멸되어&amp;nbsp;사라져야&amp;nbsp;합니다.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;이번&amp;nbsp;시간에는&amp;nbsp;총알에&amp;nbsp;닿으면&amp;nbsp;죽는&amp;nbsp;걸&amp;nbsp;한번&amp;nbsp;먼저&amp;nbsp;해본&amp;nbsp;다음, &lt;br /&gt;Unreal Engine의 Damage 매커니즘을 이용해 총알에 닿은 객체(여기서는 Enemy)에 applyDamage 로 damage를 전달해 줍니다.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;figure data-ke-type=&quot;video&quot; data-ke-style=&quot;alignCenter&quot; data-video-host=&quot;youtube&quot; data-video-url=&quot;https://www.youtube.com/watch?v=K7MDHT5Qzgk&quot; data-video-thumbnail=&quot;https://scrap.kakaocdn.net/dn/i5VBJ/hyGoXtppoZ/AhGK2wPS6DGDQVuJkjJhg0/img.jpg?width=1280&amp;amp;height=720&amp;amp;face=0_0_1280_720&quot; data-video-width=&quot;860&quot; data-video-height=&quot;484&quot; data-video-origin-width=&quot;860&quot; data-video-origin-height=&quot;484&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/K7MDHT5Qzgk&quot; width=&quot;860&quot; height=&quot;484&quot; frameborder=&quot;&quot; allowfullscreen=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;figcaption&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;언리얼&amp;nbsp;엔진&amp;nbsp;버전:&amp;nbsp;4.25.0&lt;/span&gt;&lt;/p&gt;</description>
      <category>프로그래밍/언리얼엔진</category>
      <category>unreal damage</category>
      <category>unreal engine damage</category>
      <category>언리얼 총쏘기</category>
      <category>언리얼엔진 사용법</category>
      <author>panpro</author>
      <guid isPermaLink="true">https://panpro.tistory.com/440</guid>
      <comments>https://panpro.tistory.com/440#entry440comment</comments>
      <pubDate>Fri, 12 Jun 2020 20:04:29 +0900</pubDate>
    </item>
    <item>
      <title>언리얼엔진 강좌 61 [damage-02] 총알 움직이기</title>
      <link>https://panpro.tistory.com/439</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;unreal_title-061.png&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dAFzuq/btqEK8y2aeg/kAf7V7TdM0BIDZsSgPZn50/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dAFzuq/btqEK8y2aeg/kAf7V7TdM0BIDZsSgPZn50/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dAFzuq/btqEK8y2aeg/kAf7V7TdM0BIDZsSgPZn50/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdAFzuq%2FbtqEK8y2aeg%2FkAf7V7TdM0BIDZsSgPZn50%2Fimg.png&quot; data-filename=&quot;unreal_title-061.png&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;쌩초보를&amp;nbsp;위한&amp;nbsp;언리얼&amp;nbsp;엔진&amp;nbsp;4&amp;nbsp;강좌입니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;소스코드: &lt;a href=&quot;https://github.com/easyprogstudy/unreal_damage&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;github.com/easyprogstudy/unreal_damage&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;단계별로&amp;nbsp;올리지&amp;nbsp;않고&amp;nbsp;최종&amp;nbsp;버전만&amp;nbsp;올려&amp;nbsp;놓았습니다. &lt;br /&gt;&lt;br /&gt;언리얼&amp;nbsp;엔진&amp;nbsp;강의&amp;nbsp;61번째&amp;nbsp;시간으로&amp;nbsp; &lt;br /&gt;총쏘고&amp;nbsp;데미지&amp;nbsp;입기&amp;nbsp;시리즈의&amp;nbsp;2번째&amp;nbsp;시간입니다.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;이번&amp;nbsp;시간에는&amp;nbsp;총알을&amp;nbsp;위한&amp;nbsp;BP_Bullet&amp;nbsp;블루프린트&amp;nbsp;클래스에&amp;nbsp; &lt;br /&gt;Projectile&amp;nbsp;Movement&amp;nbsp;(발사체&amp;nbsp;움직임)&amp;nbsp;컴포넌트를&amp;nbsp;추가해 &lt;br /&gt;총알을&amp;nbsp;움직이도록&amp;nbsp;만들어&amp;nbsp;줍니다. &lt;br /&gt;&lt;br /&gt;총알&amp;nbsp;객체에&amp;nbsp;Projectile&amp;nbsp;Movement를&amp;nbsp;추가해&amp;nbsp;주면&amp;nbsp;움직이게&amp;nbsp;되는데,&amp;nbsp; &lt;br /&gt;Initial&amp;nbsp;Speed&amp;nbsp;값을&amp;nbsp;10,000&amp;nbsp;정도의&amp;nbsp;값을&amp;nbsp;주면&amp;nbsp;총알처럼&amp;nbsp;움직이게&amp;nbsp;됩니다.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;총알이&amp;nbsp;일직선으로&amp;nbsp;날아가도록&amp;nbsp;하기&amp;nbsp;위해&amp;nbsp;Projectile&amp;nbsp;Gravity&amp;nbsp;Scale의&amp;nbsp;값을&amp;nbsp;0으로&amp;nbsp;설정해&amp;nbsp;주었습니다.&amp;nbsp;Projectile&amp;nbsp;Gravity&amp;nbsp;Scale&amp;nbsp;값이&amp;nbsp;음수면&amp;nbsp;총알이&amp;nbsp;풍선처럼&amp;nbsp;위로&amp;nbsp;올라가게&amp;nbsp;됩니다.&amp;nbsp;Projectile&amp;nbsp;Gravity&amp;nbsp;Scale의&amp;nbsp;기본값은&amp;nbsp;1입니다. &lt;br /&gt;&lt;br /&gt;그리고&amp;nbsp;아무&amp;nbsp;데에도&amp;nbsp;닿지&amp;nbsp;않고&amp;nbsp;날아가는&amp;nbsp;총알은&amp;nbsp;소멸되지&amp;nbsp;않고&amp;nbsp;게임이&amp;nbsp;끝날&amp;nbsp;때&amp;nbsp;까지&amp;nbsp;계속&amp;nbsp;살아있게&amp;nbsp;되는데&amp;nbsp;총알을&amp;nbsp;많이&amp;nbsp;쏘면&amp;nbsp;그&amp;nbsp;많은&amp;nbsp;총알&amp;nbsp;전부에&amp;nbsp;대해&amp;nbsp;움직임도&amp;nbsp;계산해야&amp;nbsp;하고&amp;nbsp;메모리도&amp;nbsp;많이&amp;nbsp;사용하기&amp;nbsp;때문에&amp;nbsp;게임이&amp;nbsp;엄청&amp;nbsp;버벅거리게&amp;nbsp;됩니다.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;그래서&amp;nbsp;Initial&amp;nbsp;Life&amp;nbsp;Span&amp;nbsp;값을&amp;nbsp;초단위로&amp;nbsp;설정해&amp;nbsp;그&amp;nbsp;시간이&amp;nbsp;지나면&amp;nbsp;자동으로&amp;nbsp;총알&amp;nbsp;액터가&amp;nbsp;사라지도록&amp;nbsp;만들어&amp;nbsp;주었습니다.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;그리고&amp;nbsp;총알이&amp;nbsp;발사될&amp;nbsp;당시&amp;nbsp;작은&amp;nbsp;폭발이&amp;nbsp;일어나도록&amp;nbsp;하기&amp;nbsp;위해&amp;nbsp; &lt;br /&gt;SpawnEmitterAtLocation 노드를 사용했습니다.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;figure data-ke-type=&quot;video&quot; data-ke-style=&quot;alignCenter&quot; data-video-host=&quot;youtube&quot; data-video-url=&quot;https://www.youtube.com/watch?v=_5yi4SYpIPQ&quot; data-video-thumbnail=&quot;https://scrap.kakaocdn.net/dn/QFu9k/hyGmS8iEQM/NNCE6tKv9bUEHdVk8dEZbK/img.jpg?width=1280&amp;amp;height=720&amp;amp;face=0_0_1280_720&quot; data-video-width=&quot;860&quot; data-video-height=&quot;484&quot; data-video-origin-width=&quot;860&quot; data-video-origin-height=&quot;484&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/_5yi4SYpIPQ&quot; width=&quot;860&quot; height=&quot;484&quot; frameborder=&quot;&quot; allowfullscreen=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;figcaption&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;언리얼&amp;nbsp;엔진&amp;nbsp;버전:&amp;nbsp;4.25.0&lt;/span&gt;&lt;/p&gt;</description>
      <category>프로그래밍/언리얼엔진</category>
      <category>Unreal</category>
      <category>unreal damage</category>
      <category>언리얼 사용법</category>
      <category>언리얼 총쏘기</category>
      <category>언리얼 총질</category>
      <category>언리얼엔진</category>
      <author>panpro</author>
      <guid isPermaLink="true">https://panpro.tistory.com/439</guid>
      <comments>https://panpro.tistory.com/439#entry439comment</comments>
      <pubDate>Thu, 11 Jun 2020 01:30:34 +0900</pubDate>
    </item>
    <item>
      <title>언리얼엔진 강좌 60 [damage - 01] 총과 총알 제작하고 마우스 클릭하면 총알 생성하기</title>
      <link>https://panpro.tistory.com/438</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot; data-filename=&quot;unreal_title-060.png&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/XeE5X/btqEKPyAQEP/VuKcTeFQ2mmwk4kug3XKC1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/XeE5X/btqEKPyAQEP/VuKcTeFQ2mmwk4kug3XKC1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/XeE5X/btqEKPyAQEP/VuKcTeFQ2mmwk4kug3XKC1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FXeE5X%2FbtqEKPyAQEP%2FVuKcTeFQ2mmwk4kug3XKC1%2Fimg.png&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot; data-filename=&quot;unreal_title-060.png&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;쌩초보를&amp;nbsp;위한&amp;nbsp;언리얼&amp;nbsp;엔진&amp;nbsp;4&amp;nbsp;강좌입니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;소스코드: &lt;a href=&quot;https://github.com/easyprogstudy/unreal_damage&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;github.com/easyprogstudy/unreal_damage&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;단계별로&amp;nbsp;올리지&amp;nbsp;않고&amp;nbsp;최종&amp;nbsp;버전만&amp;nbsp;올려&amp;nbsp;놓았습니다. &lt;br /&gt;&lt;br /&gt;언리얼&amp;nbsp;엔진&amp;nbsp;강의&amp;nbsp;60번째&amp;nbsp;시간으로&amp;nbsp; &lt;br /&gt;총쏘고&amp;nbsp;데미지&amp;nbsp;입기&amp;nbsp;시리즈의&amp;nbsp;1번째&amp;nbsp;시간입니다.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;이번&amp;nbsp;시간에는&amp;nbsp;아주&amp;nbsp;간단하게&amp;nbsp;총을&amp;nbsp;위한&amp;nbsp;블루프린트&amp;nbsp;클래스를&amp;nbsp;만들고 &lt;br /&gt;총알을&amp;nbsp;위한&amp;nbsp;블루프린트&amp;nbsp;클래스를&amp;nbsp;만듭니다.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;그리고&amp;nbsp;마우스&amp;nbsp;클릭을&amp;nbsp;하면&amp;nbsp;총에&amp;nbsp;fire&amp;nbsp;함수를&amp;nbsp;호출하도록&amp;nbsp;하고 &lt;br /&gt;총에서&amp;nbsp;총알을&amp;nbsp;생성합니다.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;총알을&amp;nbsp;생성하는&amp;nbsp;건&amp;nbsp;총의&amp;nbsp;역할이고 &lt;br /&gt;총알이 발사되는 건 총알 자체의 역할입니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure data-ke-type=&quot;video&quot; data-ke-style=&quot;alignCenter&quot; data-video-host=&quot;youtube&quot; data-video-url=&quot;https://www.youtube.com/watch?v=JT2wbrv7FGs&quot; data-video-thumbnail=&quot;https://scrap.kakaocdn.net/dn/byPkZb/hyGlFuLz1d/r8kfaPfrEkvtGYOYvth190/img.jpg?width=1280&amp;amp;height=720&amp;amp;face=882_346_954_424&quot; data-video-width=&quot;860&quot; data-video-height=&quot;484&quot; data-video-origin-width=&quot;860&quot; data-video-origin-height=&quot;484&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/JT2wbrv7FGs&quot; width=&quot;860&quot; height=&quot;484&quot; frameborder=&quot;&quot; allowfullscreen=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;figcaption&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;&lt;br /&gt;&lt;br /&gt;언리얼&amp;nbsp;엔진&amp;nbsp;버전:&amp;nbsp;4.25.0&lt;/p&gt;</description>
      <category>프로그래밍/언리얼엔진</category>
      <category>damage</category>
      <category>언리얼 사용법</category>
      <category>언리얼엔진</category>
      <category>총쏘는 게임 만드는 방법</category>
      <category>총질게임</category>
      <author>panpro</author>
      <guid isPermaLink="true">https://panpro.tistory.com/438</guid>
      <comments>https://panpro.tistory.com/438#entry438comment</comments>
      <pubDate>Tue, 9 Jun 2020 23:53:07 +0900</pubDate>
    </item>
    <item>
      <title>언리얼엔진 강좌 59 [조명탄 - 02] 조명탄의 빛나는 재질과 빛 만들기</title>
      <link>https://panpro.tistory.com/437</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;unreal_title-059.png&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cqIceL/btqEGTVRnXd/07A1E2KQ6GfxNxJt5qf4Ek/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cqIceL/btqEGTVRnXd/07A1E2KQ6GfxNxJt5qf4Ek/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cqIceL/btqEGTVRnXd/07A1E2KQ6GfxNxJt5qf4Ek/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcqIceL%2FbtqEGTVRnXd%2F07A1E2KQ6GfxNxJt5qf4Ek%2Fimg.png&quot; data-filename=&quot;unreal_title-059.png&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;쌩초보를&amp;nbsp;위한&amp;nbsp;언리얼&amp;nbsp;엔진&amp;nbsp;4&amp;nbsp;강좌입니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;언리얼&amp;nbsp;엔진&amp;nbsp;강의&amp;nbsp;59번째&amp;nbsp;시간으로&amp;nbsp; &lt;br /&gt;댓글로&amp;nbsp;요청하신&amp;nbsp;조명탄을&amp;nbsp;만드는&amp;nbsp;법을&amp;nbsp;설명합니다.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;소스코드: &lt;a href=&quot;https://github.com/easyprogstudy/unreal_flare&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;github.com/easyprogstudy/unreal_flare&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;총&amp;nbsp;2개로&amp;nbsp;나누어&amp;nbsp;블루프린트로&amp;nbsp;조명탄을&amp;nbsp;만드는데, &lt;br /&gt;이번에는&amp;nbsp;조명탄의&amp;nbsp;빛나는&amp;nbsp;재질과&amp;nbsp;빛을&amp;nbsp;만들어&amp;nbsp;봅니다.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;material&amp;nbsp;instance를&amp;nbsp;이용해&amp;nbsp;조명탄이&amp;nbsp;하늘로&amp;nbsp;올라가는&amp;nbsp;동안에는&amp;nbsp;조금만&amp;nbsp;빛이&amp;nbsp;나고&amp;nbsp;작은&amp;nbsp;폭발이&amp;nbsp;일어나서&amp;nbsp;자유낙하하는&amp;nbsp;동안에만&amp;nbsp;강한&amp;nbsp;빛을&amp;nbsp;내도록&amp;nbsp;만들어봅니다.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;그리고&amp;nbsp;조명(Point&amp;nbsp;Light)을&amp;nbsp;달아&amp;nbsp;주변이&amp;nbsp;밝아지도록&amp;nbsp;합니다.&amp;nbsp; &lt;br /&gt;조명 역시 처음엔 끄고 하늘로 올라가고, 자유낙하하는 동안에만 켜지도록 했습니다.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;figure data-ke-type=&quot;video&quot; data-ke-style=&quot;alignCenter&quot; data-video-host=&quot;youtube&quot; data-video-url=&quot;https://www.youtube.com/watch?v=bI0isdw-Hlw&quot; data-video-thumbnail=&quot;https://scrap.kakaocdn.net/dn/bCoO7s/hyGlLGF402/2VLh0oAcBxNcKr4MmKkTgK/img.jpg?width=1280&amp;amp;height=720&amp;amp;face=0_0_1280_720&quot; data-video-width=&quot;860&quot; data-video-height=&quot;484&quot; data-video-origin-width=&quot;860&quot; data-video-origin-height=&quot;484&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/bI0isdw-Hlw&quot; width=&quot;860&quot; height=&quot;484&quot; frameborder=&quot;&quot; allowfullscreen=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;figcaption&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;언리얼&amp;nbsp;엔진&amp;nbsp;버전:&amp;nbsp;4.24.3&lt;/span&gt;&lt;/p&gt;</description>
      <category>프로그래밍/언리얼엔진</category>
      <category>3D 게임</category>
      <category>3D 게임 만드는 법</category>
      <category>무기</category>
      <category>언리얼</category>
      <author>panpro</author>
      <guid isPermaLink="true">https://panpro.tistory.com/437</guid>
      <comments>https://panpro.tistory.com/437#entry437comment</comments>
      <pubDate>Mon, 8 Jun 2020 02:59:01 +0900</pubDate>
    </item>
    <item>
      <title>언리얼엔진 강좌 58 [조명탄 - 01] 조명탄의 움직임 만들기</title>
      <link>https://panpro.tistory.com/436</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;unreal_title-058.png&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bXyVu2/btqEEgK4HeI/Vxcan1eYLdYuGbr4De0d9K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bXyVu2/btqEEgK4HeI/Vxcan1eYLdYuGbr4De0d9K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bXyVu2/btqEEgK4HeI/Vxcan1eYLdYuGbr4De0d9K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbXyVu2%2FbtqEEgK4HeI%2FVxcan1eYLdYuGbr4De0d9K%2Fimg.png&quot; data-filename=&quot;unreal_title-058.png&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;쌩초보를&amp;nbsp;위한&amp;nbsp;언리얼&amp;nbsp;엔진&amp;nbsp;4&amp;nbsp;강좌입니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;소스코드:&amp;nbsp;&lt;a href=&quot;https://github.com/easyprogstudy/unreal_flare&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;github.com/easyprogstudy/unreal_flare&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;언리얼&amp;nbsp;엔진&amp;nbsp;강의&amp;nbsp;58번째&amp;nbsp;시간으로&amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;댓글로&amp;nbsp;요청하신&amp;nbsp;조명탄을&amp;nbsp;만드는&amp;nbsp;법을&amp;nbsp;설명합니다.&amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;총&amp;nbsp;2개로&amp;nbsp;나누어&amp;nbsp;블루프린트로&amp;nbsp;조명탄을&amp;nbsp;만드는데,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;이번에는&amp;nbsp;조명탄의&amp;nbsp;움직임을&amp;nbsp;만들어&amp;nbsp;봅니다.&amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;조명탄의&amp;nbsp;움직임은&amp;nbsp;처음엔&amp;nbsp;위로&amp;nbsp;올라가다가&amp;nbsp;고점에서&amp;nbsp;작은&amp;nbsp;폭발이&amp;nbsp;일어나고&amp;nbsp;이후&amp;nbsp;아주&amp;nbsp;천천히&amp;nbsp;자유낙하하는&amp;nbsp;걸로&amp;nbsp;했습니다.&amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;1.&amp;nbsp;블루프린트로&amp;nbsp;총을&amp;nbsp;만들어&amp;nbsp;Fire&amp;nbsp;함수를&amp;nbsp;만들고,&amp;nbsp;Fire&amp;nbsp;함수가&amp;nbsp;호출되면&amp;nbsp;조명탄을&amp;nbsp;spawn합니다.&amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;2.&amp;nbsp;조명탄은&amp;nbsp;Projectile&amp;nbsp;Movement&amp;nbsp;컴포넌트를&amp;nbsp;가지고&amp;nbsp;있어&amp;nbsp;spawn&amp;nbsp;되자마자&amp;nbsp;바로&amp;nbsp;포물선을&amp;nbsp;그리며&amp;nbsp;날아갑니다.&amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;3.&amp;nbsp;조명탄은&amp;nbsp;spawn&amp;nbsp;되고&amp;nbsp;1초&amp;nbsp;후에(포물선을&amp;nbsp;그리며&amp;nbsp;날아가고&amp;nbsp;있는&amp;nbsp;도중)&amp;nbsp;작은&amp;nbsp;폭발이&amp;nbsp;일어나고&amp;nbsp;projectile&amp;nbsp;movement가&amp;nbsp;중단되고&amp;nbsp;바로&amp;nbsp;자유낙하를&amp;nbsp;시작합니다.&amp;nbsp;자유낙하되는&amp;nbsp;속도를&amp;nbsp;조절해&amp;nbsp;실제&amp;nbsp;조명탄처럼&amp;nbsp;보이게&amp;nbsp;만듭니다.&amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure data-ke-type=&quot;video&quot; data-ke-style=&quot;alignCenter&quot; data-video-host=&quot;youtube&quot; data-video-url=&quot;https://www.youtube.com/watch?v=2f6Fs48tnEc&quot; data-video-thumbnail=&quot;https://scrap.kakaocdn.net/dn/cpxm6p/hyGj8BEHAf/LPgwQjoKkzaw5gMDCbNQlk/img.jpg?width=1280&amp;amp;height=720&amp;amp;face=0_0_1280_720&quot; data-video-width=&quot;860&quot; data-video-height=&quot;484&quot; data-video-origin-width=&quot;860&quot; data-video-origin-height=&quot;484&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/2f6Fs48tnEc&quot; width=&quot;860&quot; height=&quot;484&quot; frameborder=&quot;&quot; allowfullscreen=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;figcaption&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;언리얼&amp;nbsp;엔진&amp;nbsp;버전:&amp;nbsp;4.24.3&lt;/p&gt;</description>
      <category>프로그래밍/언리얼엔진</category>
      <category>3D 게임</category>
      <category>3d 게임 프로그래밍</category>
      <category>Unreal</category>
      <category>궤적</category>
      <category>언리얼</category>
      <category>언리얼엔진</category>
      <author>panpro</author>
      <guid isPermaLink="true">https://panpro.tistory.com/436</guid>
      <comments>https://panpro.tistory.com/436#entry436comment</comments>
      <pubDate>Fri, 5 Jun 2020 20:10:06 +0900</pubDate>
    </item>
    <item>
      <title>언리얼엔진 강좌 57 C++로 blueprint용 함수 노드 만들기</title>
      <link>https://panpro.tistory.com/435</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;unreal_title-057.png&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/6cnCW/btqEADtmR8q/yAK1MbM6b9kmwmywUPbLu1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/6cnCW/btqEADtmR8q/yAK1MbM6b9kmwmywUPbLu1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/6cnCW/btqEADtmR8q/yAK1MbM6b9kmwmywUPbLu1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F6cnCW%2FbtqEADtmR8q%2FyAK1MbM6b9kmwmywUPbLu1%2Fimg.png&quot; data-filename=&quot;unreal_title-057.png&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;쌩초보를 위한 언리얼 엔진 4 강좌입니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;언리얼&amp;nbsp;엔진&amp;nbsp;강의&amp;nbsp;57번째&amp;nbsp;시간으로&amp;nbsp; &lt;br /&gt;C++을&amp;nbsp;이용해&amp;nbsp;블루프린트용&amp;nbsp;함수를&amp;nbsp;만들어&amp;nbsp;보겠습니다.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;물론&amp;nbsp;블루프린트로도&amp;nbsp;훌륭한&amp;nbsp;프로그램을&amp;nbsp;만들&amp;nbsp;수&amp;nbsp;있지만,&amp;nbsp; &lt;br /&gt;C++이&amp;nbsp;가능한&amp;nbsp;개발자라면&amp;nbsp;좀더&amp;nbsp;유연하게&amp;nbsp;개발&amp;nbsp;폭을&amp;nbsp;넓혀볼&amp;nbsp;수&amp;nbsp;있습니다.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;그리고&amp;nbsp;이런&amp;nbsp;방식이&amp;nbsp;개발자는&amp;nbsp;C++로&amp;nbsp;함수를&amp;nbsp;만들고&amp;nbsp; &lt;br /&gt;디자이너는&amp;nbsp;블루프린트로&amp;nbsp;그&amp;nbsp;함수들을&amp;nbsp;이용하며&amp;nbsp;좀더&amp;nbsp;쉽게&amp;nbsp;협업할&amp;nbsp;수&amp;nbsp;있습니다.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;unreal에서&amp;nbsp;visual&amp;nbsp;studio&amp;nbsp;2019를&amp;nbsp;이용해&amp;nbsp;C++&amp;nbsp;클래스&amp;nbsp;만드는&amp;nbsp;방법과 &lt;br /&gt;기본적으로&amp;nbsp;UE_LOG&amp;nbsp;함수를&amp;nbsp;이용하면&amp;nbsp;한글이&amp;nbsp;깨져나오는데&amp;nbsp;한글을&amp;nbsp;제대로&amp;nbsp;표현하는&amp;nbsp;방법도&amp;nbsp;설명합니다.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure data-ke-type=&quot;video&quot; data-ke-style=&quot;alignCenter&quot; data-video-host=&quot;youtube&quot; data-video-url=&quot;https://www.youtube.com/watch?v=Wxa5SS5H2CM&quot; data-video-thumbnail=&quot;https://scrap.kakaocdn.net/dn/E7GDN/hyGhIZr6No/yeb2aIWF59GGklfkB3oTY1/img.jpg?width=1280&amp;amp;height=720&amp;amp;face=0_0_1280_720&quot; data-video-width=&quot;860&quot; data-video-height=&quot;484&quot; data-video-origin-width=&quot;860&quot; data-video-origin-height=&quot;484&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/Wxa5SS5H2CM&quot; width=&quot;860&quot; height=&quot;484&quot; frameborder=&quot;&quot; allowfullscreen=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;figcaption&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;언리얼&amp;nbsp;엔진&amp;nbsp;버전:&amp;nbsp;4.24.3&lt;/p&gt;</description>
      <category>프로그래밍/언리얼엔진</category>
      <category>3D 게임</category>
      <category>Unreal</category>
      <category>블루프린트 C++</category>
      <category>언리얼</category>
      <category>언리얼엔진</category>
      <category>언리얼엔진 사용법</category>
      <author>panpro</author>
      <guid isPermaLink="true">https://panpro.tistory.com/435</guid>
      <comments>https://panpro.tistory.com/435#entry435comment</comments>
      <pubDate>Thu, 4 Jun 2020 12:36:16 +0900</pubDate>
    </item>
    <item>
      <title>언리얼엔진 강좌 56 [인공지능-17] Perception 06 - 시각센서06 - actor의 태그를 이용해 플레이어인지 구분하기</title>
      <link>https://panpro.tistory.com/434</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;unreal_title-056.png&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/2SGLD/btqEA1tB2FJ/VGmFmHCixp0b1G24fe3ob0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/2SGLD/btqEA1tB2FJ/VGmFmHCixp0b1G24fe3ob0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/2SGLD/btqEA1tB2FJ/VGmFmHCixp0b1G24fe3ob0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F2SGLD%2FbtqEA1tB2FJ%2FVGmFmHCixp0b1G24fe3ob0%2Fimg.png&quot; data-filename=&quot;unreal_title-056.png&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;쌩초보를&amp;nbsp;위한&amp;nbsp;언리얼&amp;nbsp;엔진&amp;nbsp;4&amp;nbsp;강좌입니다. &lt;br /&gt;&lt;br /&gt;언리얼&amp;nbsp;엔진&amp;nbsp;강의&amp;nbsp;56번째&amp;nbsp;시간,&amp;nbsp; &lt;br /&gt;언리얼&amp;nbsp;엔진&amp;nbsp;인공지능(unreal&amp;nbsp;engine&amp;nbsp;AI)&amp;nbsp;17번째&amp;nbsp;시간으로 &lt;br /&gt;&lt;br /&gt;몹을&amp;nbsp;하나&amp;nbsp;더&amp;nbsp;추가해&amp;nbsp;봅니다.&amp;nbsp; &lt;br /&gt;그럼&amp;nbsp;몹끼리&amp;nbsp;서로&amp;nbsp;공격하고&amp;nbsp;쫒아다니는걸&amp;nbsp;볼&amp;nbsp;수&amp;nbsp;있는데,&amp;nbsp; &lt;br /&gt;그&amp;nbsp;이유는&amp;nbsp;시각&amp;nbsp;센서로&amp;nbsp;감지된&amp;nbsp;오브젝트가&amp;nbsp;플레이어인지&amp;nbsp;같은&amp;nbsp;몹인지&amp;nbsp;구분하지&amp;nbsp;않았기&amp;nbsp;때문입니다.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;그래서&amp;nbsp;플레이어에&amp;nbsp;태그를&amp;nbsp;하나&amp;nbsp;달아놓고&amp;nbsp;ActorHasTag라는&amp;nbsp;함수를&amp;nbsp;이용해&amp;nbsp;태그로&amp;nbsp;판단해서&amp;nbsp;플레이어인&amp;nbsp;경우에만&amp;nbsp;쫒아가도록&amp;nbsp;하였습니다. &lt;br /&gt;&lt;br /&gt;언리얼&amp;nbsp;엔진에서&amp;nbsp;C++로&amp;nbsp;개발하는&amp;nbsp;경우에는&amp;nbsp;Detection&amp;nbsp;by&amp;nbsp;Affiliation에&amp;nbsp;Detect&amp;nbsp;Enemies,&amp;nbsp;Detect&amp;nbsp;Neutrals,&amp;nbsp;Detect&amp;nbsp;Friendies&amp;nbsp;등을&amp;nbsp;설정해&amp;nbsp;태그를&amp;nbsp;이용하지&amp;nbsp;않아도&amp;nbsp;되지만,&amp;nbsp;현재&amp;nbsp;버전의&amp;nbsp;블루프린트에서는&amp;nbsp;Detection&amp;nbsp;by&amp;nbsp;Affiliation&amp;nbsp;을&amp;nbsp;설정할&amp;nbsp;수&amp;nbsp;없기&amp;nbsp;때문에&amp;nbsp;태그를&amp;nbsp;이용해서&amp;nbsp;플레이어를&amp;nbsp;구분했습니다. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;이제&amp;nbsp;언리얼&amp;nbsp;엔진&amp;nbsp;인공지능을&amp;nbsp;일단락&amp;nbsp;지으려&amp;nbsp;합니다.&amp;nbsp; &lt;br /&gt;인공지능에&amp;nbsp;대해&amp;nbsp;공부할&amp;nbsp;게&amp;nbsp;아직&amp;nbsp;더&amp;nbsp;많긴&amp;nbsp;하지만&amp;nbsp;큰&amp;nbsp;틀은&amp;nbsp;거의&amp;nbsp;설명했으니&amp;nbsp;전반적인&amp;nbsp;이해에&amp;nbsp;도움이&amp;nbsp;되었으리라&amp;nbsp;믿습니다.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;이후에도&amp;nbsp;인공지능에&amp;nbsp;대해&amp;nbsp;또&amp;nbsp;같이&amp;nbsp;공부할&amp;nbsp;시간을&amp;nbsp;갖겠습니다.&amp;nbsp;^^; &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure data-ke-type=&quot;video&quot; data-ke-style=&quot;alignCenter&quot; data-video-host=&quot;youtube&quot; data-video-url=&quot;https://www.youtube.com/watch?v=linI9-3rzHI&quot; data-video-thumbnail=&quot;https://scrap.kakaocdn.net/dn/bPklTm/hyGhFgGZWK/M9qkcVORFRwEmjORwlccw1/img.jpg?width=1280&amp;amp;height=720&amp;amp;face=0_0_1280_720&quot; data-video-width=&quot;860&quot; data-video-height=&quot;484&quot; data-video-origin-width=&quot;860&quot; data-video-origin-height=&quot;484&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/linI9-3rzHI&quot; width=&quot;860&quot; height=&quot;484&quot; frameborder=&quot;&quot; allowfullscreen=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;figcaption&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;&lt;br /&gt;언리얼&amp;nbsp;엔진&amp;nbsp;버전:&amp;nbsp;4.24.3&lt;/p&gt;</description>
      <category>프로그래밍/언리얼엔진</category>
      <category>3D 게임만드는 방법</category>
      <category>언리얼 강의</category>
      <category>언리얼 강좌</category>
      <category>언리얼 인강</category>
      <category>언리얼 인공지능</category>
      <category>언리얼엔진</category>
      <author>panpro</author>
      <guid isPermaLink="true">https://panpro.tistory.com/434</guid>
      <comments>https://panpro.tistory.com/434#entry434comment</comments>
      <pubDate>Wed, 3 Jun 2020 22:23:46 +0900</pubDate>
    </item>
    <item>
      <title>언리얼엔진 강좌 55 [인공지능-16] Perception 05 - 시각센서05 - 순찰하다가 적을 발견하면 순찰을 중단하고 쫓아가기</title>
      <link>https://panpro.tistory.com/433</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;unreal_title-055.png&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/kKRGn/btqEzAhaHGn/uJBLo7BzNV06hDFyOkPKzk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kKRGn/btqEzAhaHGn/uJBLo7BzNV06hDFyOkPKzk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kKRGn/btqEzAhaHGn/uJBLo7BzNV06hDFyOkPKzk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkKRGn%2FbtqEzAhaHGn%2FuJBLo7BzNV06hDFyOkPKzk%2Fimg.png&quot; data-filename=&quot;unreal_title-055.png&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;쌩초보를&amp;nbsp;위한&amp;nbsp;언리얼&amp;nbsp;엔진&amp;nbsp;4&amp;nbsp;강좌입니다. &lt;br /&gt;&lt;br /&gt;언리얼&amp;nbsp;엔진&amp;nbsp;강의&amp;nbsp;55번째&amp;nbsp;시간,&amp;nbsp; &lt;br /&gt;언리얼&amp;nbsp;엔진&amp;nbsp;인공지능(unreal&amp;nbsp;engine&amp;nbsp;AI)&amp;nbsp;16번째&amp;nbsp;시간으로 &lt;br /&gt;몹이&amp;nbsp;순찰을&amp;nbsp;하다&amp;nbsp;적군을&amp;nbsp;발견하면&amp;nbsp;순찰을&amp;nbsp;즉시&amp;nbsp;중단하고&amp;nbsp;적을&amp;nbsp;쫓아가도록&amp;nbsp;만들어&amp;nbsp;봅니다.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;level에&amp;nbsp;2개의&amp;nbsp;target&amp;nbsp;point를&amp;nbsp;놓아두고&amp;nbsp;그&amp;nbsp;2개의&amp;nbsp;target&amp;nbsp;point를&amp;nbsp;몹의&amp;nbsp;블루프린트&amp;nbsp;클래스에&amp;nbsp;알려주면&amp;nbsp;알아서&amp;nbsp;2점&amp;nbsp;사이를&amp;nbsp;계속&amp;nbsp;왔다갔다&amp;nbsp;순찰하도록&amp;nbsp;했습니다.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;기존&amp;nbsp;비헤이비어&amp;nbsp;트리에&amp;nbsp; &lt;br /&gt;순찰이라는&amp;nbsp;노드를&amp;nbsp;추가해&amp;nbsp;기본적으로&amp;nbsp;2점&amp;nbsp;사이를&amp;nbsp;순찰하도록&amp;nbsp;하고 &lt;br /&gt;만약&amp;nbsp;적을&amp;nbsp;발견하면&amp;nbsp;그&amp;nbsp;즉시&amp;nbsp;순찰을&amp;nbsp;종료하고&amp;nbsp;적을&amp;nbsp;쫓아가도록&amp;nbsp;했보았습니다. &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure data-ke-type=&quot;video&quot; data-ke-style=&quot;alignCenter&quot; data-video-host=&quot;youtube&quot; data-video-url=&quot;https://www.youtube.com/watch?v=FsqxujjuIvk&quot; data-video-thumbnail=&quot;https://scrap.kakaocdn.net/dn/bVzyUa/hyGgirW9wa/RXYxzzFuBEnwielFuidve0/img.jpg?width=480&amp;amp;height=360&amp;amp;face=0_0_480_360,https://scrap.kakaocdn.net/dn/cFAwUF/hyGguy8lfd/6GEqnvCsOCvDof5QEGtWA1/img.jpg?width=480&amp;amp;height=360&amp;amp;face=0_0_480_360&quot; data-video-width=&quot;860&quot; data-video-height=&quot;645&quot; data-video-origin-width=&quot;480&quot; data-video-origin-height=&quot;360&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/FsqxujjuIvk&quot; width=&quot;860&quot; height=&quot;645&quot; frameborder=&quot;&quot; allowfullscreen=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;figcaption&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;&lt;br /&gt;언리얼&amp;nbsp;엔진&amp;nbsp;버전:&amp;nbsp;4.24.3&lt;/p&gt;</description>
      <category>프로그래밍/언리얼엔진</category>
      <category>3D 게임</category>
      <category>Unreal</category>
      <category>게임 인공지능</category>
      <category>언리얼</category>
      <category>언리얼 엔진 사용법</category>
      <author>panpro</author>
      <guid isPermaLink="true">https://panpro.tistory.com/433</guid>
      <comments>https://panpro.tistory.com/433#entry433comment</comments>
      <pubDate>Mon, 1 Jun 2020 23:53:09 +0900</pubDate>
    </item>
    <item>
      <title>언리얼엔진 강좌 54 [인공지능-15] Perception 04 - 시각센서04 - 시야에 들어오면 쫒아가기</title>
      <link>https://panpro.tistory.com/432</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;unreal_title-054.png&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lnswu/btqEv8zsVRo/FGt61fKrEBxIZFR2yI2870/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lnswu/btqEv8zsVRo/FGt61fKrEBxIZFR2yI2870/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lnswu/btqEv8zsVRo/FGt61fKrEBxIZFR2yI2870/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Flnswu%2FbtqEv8zsVRo%2FFGt61fKrEBxIZFR2yI2870%2Fimg.png&quot; data-filename=&quot;unreal_title-054.png&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;쌩초보를&amp;nbsp;위한&amp;nbsp;언리얼&amp;nbsp;엔진&amp;nbsp;4&amp;nbsp;강좌입니다.&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #333333;&quot;&gt;언리얼&amp;nbsp;엔진&amp;nbsp;강의&amp;nbsp;54번째&amp;nbsp;시간,&amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #333333;&quot;&gt;언리얼&amp;nbsp;엔진&amp;nbsp;인공지능(unreal&amp;nbsp;engine&amp;nbsp;AI)&amp;nbsp;15번째&amp;nbsp;시간으로&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #333333;&quot;&gt;몹이&amp;nbsp;시각센서로&amp;nbsp;적을&amp;nbsp;발견하면&amp;nbsp;쫓아가도록&amp;nbsp;만듭니다.&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #333333;&quot;&gt;기존&amp;nbsp;비헤이비어&amp;nbsp;트리에&amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #333333;&quot;&gt;moveto&amp;nbsp;&amp;nbsp;태스크&amp;nbsp;하나를&amp;nbsp;추가합니다.&amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #333333;&quot;&gt;현재&amp;nbsp;플레이어의&amp;nbsp;위치를&amp;nbsp;블랙보드에&amp;nbsp;적어주고&amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #333333;&quot;&gt;그&amp;nbsp;블랙보드의&amp;nbsp;값을&amp;nbsp;서비스를&amp;nbsp;이용해&amp;nbsp;moveto에&amp;nbsp;전달해&amp;nbsp;줘서&amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #333333;&quot;&gt;계속&amp;nbsp;플레이어를&amp;nbsp;쫓아가도록&amp;nbsp;만들어&amp;nbsp;봅니다.&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure data-ke-type=&quot;video&quot; data-ke-style=&quot;alignCenter&quot; data-video-host=&quot;youtube&quot; data-video-url=&quot;https://www.youtube.com/watch?v=5MI2Q5muGL8&quot; data-video-thumbnail=&quot;https://scrap.kakaocdn.net/dn/b0E8No/hyGeL8gyMg/oAQjGC6r0Cic37v8eaR3e1/img.jpg?width=1280&amp;amp;height=720&amp;amp;face=0_0_1280_720,https://scrap.kakaocdn.net/dn/Mwsv6/hyGeS0DdX4/yaH3GSEU3TGQ3ELAzbM0X1/img.jpg?width=1280&amp;amp;height=720&amp;amp;face=0_0_1280_720&quot; data-video-width=&quot;860&quot; data-video-height=&quot;484&quot; data-video-origin-width=&quot;860&quot; data-video-origin-height=&quot;484&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/5MI2Q5muGL8&quot; width=&quot;860&quot; height=&quot;484&quot; frameborder=&quot;&quot; allowfullscreen=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;figcaption&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;&lt;br /&gt;언리얼&amp;nbsp;엔진&amp;nbsp;버전:&amp;nbsp;4.24.3&lt;/p&gt;</description>
      <category>프로그래밍/언리얼엔진</category>
      <category>게임제작 인강</category>
      <category>언리얼 인강</category>
      <category>언리얼엔진</category>
      <category>언리얼엔진 강의</category>
      <category>언리얼엔진 강좌</category>
      <category>언리얼엔진 한글 강의</category>
      <category>언리얼엔진 한글 강좌</category>
      <author>panpro</author>
      <guid isPermaLink="true">https://panpro.tistory.com/432</guid>
      <comments>https://panpro.tistory.com/432#entry432comment</comments>
      <pubDate>Sun, 31 May 2020 00:06:31 +0900</pubDate>
    </item>
    <item>
      <title>언리얼엔진 강좌 53 [인공지능-14] Perception 03 - 시각센서03 - 시야에 들어오면 공격모드로 바꾸기</title>
      <link>https://panpro.tistory.com/431</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;unreal_title-053.png&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/daytKj/btqEw1ThDPF/WdKFIVqugvwgurYw7z3sLK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/daytKj/btqEw1ThDPF/WdKFIVqugvwgurYw7z3sLK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/daytKj/btqEw1ThDPF/WdKFIVqugvwgurYw7z3sLK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdaytKj%2FbtqEw1ThDPF%2FWdKFIVqugvwgurYw7z3sLK%2Fimg.png&quot; data-filename=&quot;unreal_title-053.png&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;쌩초보를&amp;nbsp;위한&amp;nbsp;언리얼&amp;nbsp;엔진&amp;nbsp;4&amp;nbsp;강좌입니다. &lt;br /&gt;&lt;br /&gt;언리얼&amp;nbsp;엔진&amp;nbsp;강의&amp;nbsp;53번째&amp;nbsp;시간,&amp;nbsp; &lt;br /&gt;언리얼&amp;nbsp;엔진&amp;nbsp;인공지능(unreal&amp;nbsp;engine&amp;nbsp;AI)&amp;nbsp;14번째&amp;nbsp;시간으로 &lt;br /&gt;몹이&amp;nbsp;시각센서로&amp;nbsp;적을&amp;nbsp;발견하면&amp;nbsp;공격모드로&amp;nbsp;바꿔&amp;nbsp;봅니다&amp;nbsp;. &lt;br /&gt;&lt;br /&gt;공격모드로&amp;nbsp;바뀌었다는&amp;nbsp;걸&amp;nbsp;확인하기&amp;nbsp;위해&amp;nbsp;칼을&amp;nbsp;꺼내&amp;nbsp;들도록&amp;nbsp;해보겠습니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;br /&gt;언리얼&amp;nbsp;엔진&amp;nbsp;버전:&amp;nbsp;4.24.3&lt;/p&gt;
&lt;figure data-ke-type=&quot;video&quot; data-ke-style=&quot;alignCenter&quot; data-video-host=&quot;youtube&quot; data-video-url=&quot;https://www.youtube.com/watch?v=jcL6STvbk3M&quot; data-video-thumbnail=&quot;https://scrap.kakaocdn.net/dn/P7YCf/hyGdILx7kK/oommOaJRSO1H5FnqB6XvuK/img.jpg?width=480&amp;amp;height=360&amp;amp;face=0_0_480_360,https://scrap.kakaocdn.net/dn/bh39aw/hyGdKJmj3M/eEfQ9Riinn1lIPdF5vSKo0/img.jpg?width=480&amp;amp;height=360&amp;amp;face=0_0_480_360&quot; data-video-width=&quot;860&quot; data-video-height=&quot;645&quot; data-video-origin-width=&quot;480&quot; data-video-origin-height=&quot;360&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/jcL6STvbk3M&quot; width=&quot;860&quot; height=&quot;645&quot; frameborder=&quot;&quot; allowfullscreen=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;figcaption&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>프로그래밍/언리얼엔진</category>
      <category>3D 게임 만드는 방법</category>
      <category>3d 게임 만들기</category>
      <category>ue4</category>
      <category>Unreal</category>
      <category>언리얼</category>
      <category>언리얼 사용법</category>
      <category>언리얼 엔진</category>
      <author>panpro</author>
      <guid isPermaLink="true">https://panpro.tistory.com/431</guid>
      <comments>https://panpro.tistory.com/431#entry431comment</comments>
      <pubDate>Sat, 30 May 2020 07:34:44 +0900</pubDate>
    </item>
    <item>
      <title>언리얼엔진 강좌 52 [인공지능-13] Perception 02 - 시각센서02 - 들어온건지 나간건지 판단하기</title>
      <link>https://panpro.tistory.com/430</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;unreal_title-052.png&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/49IqS/btqEu52SeZA/WKeQm0mAWkcXyRsl9ss4d0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/49IqS/btqEu52SeZA/WKeQm0mAWkcXyRsl9ss4d0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/49IqS/btqEu52SeZA/WKeQm0mAWkcXyRsl9ss4d0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F49IqS%2FbtqEu52SeZA%2FWKeQm0mAWkcXyRsl9ss4d0%2Fimg.png&quot; data-filename=&quot;unreal_title-052.png&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;쌩초보를&amp;nbsp;위한&amp;nbsp;언리얼&amp;nbsp;엔진&amp;nbsp;4&amp;nbsp;강좌입니다.&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #333333;&quot;&gt;언리얼&amp;nbsp;엔진&amp;nbsp;강의&amp;nbsp;52번째&amp;nbsp;시간,&amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #333333;&quot;&gt;언리얼&amp;nbsp;엔진&amp;nbsp;인공지능(unreal&amp;nbsp;engine&amp;nbsp;AI)&amp;nbsp;13번째&amp;nbsp;시간으로&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #333333;&quot;&gt;시각센서에서&amp;nbsp;무언가&amp;nbsp;변경사항이&amp;nbsp;발생해&amp;nbsp;OnPerceptionUpdated&amp;nbsp;이벤트가&amp;nbsp;발생한&amp;nbsp;경우&amp;nbsp;이게&amp;nbsp;시각&amp;nbsp;안으로&amp;nbsp;들어와서&amp;nbsp;이벤트가&amp;nbsp;발생한&amp;nbsp;건지&amp;nbsp;시각&amp;nbsp;밖으로&amp;nbsp;나가서&amp;nbsp;이벤트가&amp;nbsp;발생한&amp;nbsp;건지&amp;nbsp;판단하는&amp;nbsp;함수를&amp;nbsp;만듭니다.&amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure data-ke-type=&quot;video&quot; data-ke-style=&quot;alignCenter&quot; data-video-host=&quot;youtube&quot; data-video-url=&quot;https://www.youtube.com/watch?v=X6s321PJffM&quot; data-video-thumbnail=&quot;https://scrap.kakaocdn.net/dn/bhfTmP/hyGnKH6REL/gbaCFd195PJUK9YdLfQtkK/img.jpg?width=480&amp;amp;height=360&amp;amp;face=0_0_480_360&quot; data-video-width=&quot;860&quot; data-video-height=&quot;645&quot; data-video-origin-width=&quot;480&quot; data-video-origin-height=&quot;360&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/X6s321PJffM&quot; width=&quot;860&quot; height=&quot;645&quot; frameborder=&quot;&quot; allowfullscreen=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;figcaption&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;언리얼&amp;nbsp;엔진&amp;nbsp;버전:&amp;nbsp;4.24.3&lt;/p&gt;</description>
      <category>프로그래밍/언리얼엔진</category>
      <category>Unreal</category>
      <category>언리얼 엔진</category>
      <category>언리얼 인공지능</category>
      <category>인공지능 시각</category>
      <author>panpro</author>
      <guid isPermaLink="true">https://panpro.tistory.com/430</guid>
      <comments>https://panpro.tistory.com/430#entry430comment</comments>
      <pubDate>Fri, 29 May 2020 01:04:56 +0900</pubDate>
    </item>
    <item>
      <title>언리얼엔진 강좌 51 [인공지능-12] Perception 01 - 시각센서01 - 시각센서 설명</title>
      <link>https://panpro.tistory.com/429</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;unreal_title-051.png&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/OI1VL/btqEtuXchzC/0FajQKGqSaLD03I0nDGVc1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/OI1VL/btqEtuXchzC/0FajQKGqSaLD03I0nDGVc1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/OI1VL/btqEtuXchzC/0FajQKGqSaLD03I0nDGVc1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FOI1VL%2FbtqEtuXchzC%2F0FajQKGqSaLD03I0nDGVc1%2Fimg.png&quot; data-filename=&quot;unreal_title-051.png&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;쌩초보를&amp;nbsp;위한&amp;nbsp;언리얼&amp;nbsp;엔진&amp;nbsp;4&amp;nbsp;강좌입니다. &lt;br /&gt;&lt;br /&gt;언리얼&amp;nbsp;엔진&amp;nbsp;강의&amp;nbsp;51번째&amp;nbsp;시간,&amp;nbsp; &lt;br /&gt;언리얼&amp;nbsp;엔진&amp;nbsp;인공지능(unreal&amp;nbsp;engine&amp;nbsp;AI)&amp;nbsp;12번째&amp;nbsp;시간으로 &lt;br /&gt;Perception(지각)에&amp;nbsp;대해&amp;nbsp;설명하고 &lt;br /&gt;Perception의&amp;nbsp;한&amp;nbsp;요소인&amp;nbsp;시각센서에&amp;nbsp;대해&amp;nbsp;설명합니다.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;시각센서는&amp;nbsp;일정&amp;nbsp;거리&amp;nbsp;안으로&amp;nbsp;어떤&amp;nbsp;물체가&amp;nbsp;들어오면&amp;nbsp;쫓아가거나&amp;nbsp;공격하거나&amp;nbsp;말을&amp;nbsp;하거나&amp;nbsp;하는&amp;nbsp;등의&amp;nbsp;일을&amp;nbsp;하기&amp;nbsp;위해&amp;nbsp;물체의&amp;nbsp;접근을&amp;nbsp;감지하는&amp;nbsp;역할을&amp;nbsp;합니다.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;시각센서에서&amp;nbsp;감지한&amp;nbsp;물체는&amp;nbsp;보통&amp;nbsp;태그를&amp;nbsp;이용해&amp;nbsp;이&amp;nbsp;물체가&amp;nbsp;어떤&amp;nbsp;성질을&amp;nbsp;가졌는지,&amp;nbsp;적인지&amp;nbsp;아군인지,&amp;nbsp;같은&amp;nbsp;몹인지,&amp;nbsp;플레이어인지&amp;nbsp;등을&amp;nbsp;판단해&amp;nbsp;공격하거나&amp;nbsp;그냥&amp;nbsp;무시하거나&amp;nbsp;합니다.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;보통&amp;nbsp;GTA같은&amp;nbsp;게임에서&amp;nbsp;가만히&amp;nbsp;서&amp;nbsp;있던&amp;nbsp;적이&amp;nbsp;일정&amp;nbsp;거리&amp;nbsp;안에&amp;nbsp;플레이어가&amp;nbsp;보이면&amp;nbsp;공격할&amp;nbsp;때,&amp;nbsp;이런&amp;nbsp;시각센서가&amp;nbsp;동작해서&amp;nbsp;적을&amp;nbsp;감지하고&amp;nbsp;있는&amp;nbsp;거에요. &lt;br /&gt;&lt;br /&gt;그세&amp;nbsp;언리얼&amp;nbsp;엔진이&amp;nbsp;업그레이드되어서&amp;nbsp;4.24.&amp;nbsp;3&amp;nbsp;버전을&amp;nbsp;이용했습니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure data-ke-type=&quot;video&quot; data-ke-style=&quot;alignCenter&quot; data-video-host=&quot;youtube&quot; data-video-url=&quot;https://www.youtube.com/watch?v=9nddfm7Nczs&quot; data-video-thumbnail=&quot;https://scrap.kakaocdn.net/dn/MmSeK/hyGcwECyix/KJb3Wxgf8Yn8kkN1HrOKrK/img.jpg?width=1280&amp;amp;height=720&amp;amp;face=0_0_1280_720,https://scrap.kakaocdn.net/dn/KjpxD/hyGdJWCCtZ/2bkBAAag82JCMp4BQy8sj0/img.jpg?width=1280&amp;amp;height=720&amp;amp;face=0_0_1280_720&quot; data-video-width=&quot;860&quot; data-video-height=&quot;484&quot; data-video-origin-width=&quot;860&quot; data-video-origin-height=&quot;484&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/9nddfm7Nczs&quot; width=&quot;860&quot; height=&quot;484&quot; frameborder=&quot;&quot; allowfullscreen=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;figcaption&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;언리얼&amp;nbsp;엔진&amp;nbsp;버전:&amp;nbsp;4.24.3&lt;/span&gt;&lt;/p&gt;</description>
      <category>프로그래밍/언리얼엔진</category>
      <category>3D 게임 만드는 방법</category>
      <category>Unreal Engine</category>
      <category>언리얼</category>
      <category>언리얼엔진</category>
      <category>언리얼엔진 강의</category>
      <author>panpro</author>
      <guid isPermaLink="true">https://panpro.tistory.com/429</guid>
      <comments>https://panpro.tistory.com/429#entry429comment</comments>
      <pubDate>Thu, 28 May 2020 20:21:14 +0900</pubDate>
    </item>
    <item>
      <title>언리얼엔진 강좌 50 [인공지능-11] Behavior Tree 07 - Decorator</title>
      <link>https://panpro.tistory.com/428</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;unreal_title-050.png&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/CyYkS/btqEo6JatmF/y6d6rpzqIYLiUvu36zafck/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/CyYkS/btqEo6JatmF/y6d6rpzqIYLiUvu36zafck/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/CyYkS/btqEo6JatmF/y6d6rpzqIYLiUvu36zafck/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FCyYkS%2FbtqEo6JatmF%2Fy6d6rpzqIYLiUvu36zafck%2Fimg.png&quot; data-filename=&quot;unreal_title-050.png&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;쌩초보를&amp;nbsp;위한&amp;nbsp;언리얼&amp;nbsp;엔진&amp;nbsp;4&amp;nbsp;강좌입니다. &lt;br /&gt;&lt;br /&gt;언리얼&amp;nbsp;엔진&amp;nbsp;강의&amp;nbsp;50번째&amp;nbsp;시간,&amp;nbsp; &lt;br /&gt;언리얼&amp;nbsp;엔진&amp;nbsp;인공지능(unreal&amp;nbsp;engine&amp;nbsp;AI)&amp;nbsp;11번째&amp;nbsp;시간으로 &lt;br /&gt;Behavior&amp;nbsp;Tree에서&amp;nbsp;사용하는 &lt;br /&gt;Decorator(데코레이터)에&amp;nbsp;대해&amp;nbsp;설명합니다.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;설계&amp;nbsp;개념에서&amp;nbsp;decorator는&amp;nbsp;원래&amp;nbsp;어떤&amp;nbsp;기능을&amp;nbsp;하던&amp;nbsp;모듈은&amp;nbsp;고치지&amp;nbsp;않고&amp;nbsp;그대로&amp;nbsp;둔&amp;nbsp;채로&amp;nbsp;그&amp;nbsp;모듈을&amp;nbsp;감싸서&amp;nbsp;어떤&amp;nbsp;기능을&amp;nbsp;추가하는&amp;nbsp;것을&amp;nbsp;말합니다.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;언리얼&amp;nbsp;엔진에서의&amp;nbsp;decorator도&amp;nbsp;같은&amp;nbsp;개념인데, &lt;br /&gt;&lt;br /&gt;Decorator는&amp;nbsp; &lt;br /&gt;Behavior&amp;nbsp;Tree에서&amp;nbsp; &lt;br /&gt;각&amp;nbsp;task에&amp;nbsp;붙어서&amp;nbsp; &lt;br /&gt;task가&amp;nbsp;할&amp;nbsp;일을&amp;nbsp;더&amp;nbsp;추가해&amp;nbsp;주는&amp;nbsp;일을&amp;nbsp;합니다. &lt;br /&gt;&lt;br /&gt;그리고&amp;nbsp;decorator가&amp;nbsp;task에&amp;nbsp;붙지만 &lt;br /&gt;composite에도&amp;nbsp;붙습니다. &lt;br /&gt;&lt;br /&gt;언리얼&amp;nbsp;엔진에서&amp;nbsp;decorator는&amp;nbsp;주로&amp;nbsp;이&amp;nbsp;노드(task나&amp;nbsp;compositr)가&amp;nbsp;실행될지&amp;nbsp;말지를&amp;nbsp;체크하는&amp;nbsp;역할을&amp;nbsp;합니다.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;그래서&amp;nbsp;한&amp;nbsp;노드에&amp;nbsp;서비스,&amp;nbsp;태스크,&amp;nbsp;데코레이터가&amp;nbsp;모두&amp;nbsp;들어가&amp;nbsp;있다면 &lt;br /&gt;데코레이터,&amp;nbsp;서비스,&amp;nbsp;태스크&amp;nbsp;순으로&amp;nbsp;실행됩니다.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;데코레이터에서&amp;nbsp;거절하면&amp;nbsp;그&amp;nbsp;노드는&amp;nbsp;아예&amp;nbsp;실행이&amp;nbsp;안되는&amp;nbsp;거지요. &lt;br /&gt;만약 compositie에 붙어 있는 데코레이터에서 거절하면 그 하위 서브 트리들도 모두 실행이 안됩니다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure data-ke-type=&quot;video&quot; data-ke-style=&quot;alignCenter&quot; data-video-host=&quot;youtube&quot; data-video-url=&quot;https://www.youtube.com/watch?v=n_piqb8LGYA&quot; data-video-thumbnail=&quot;https://scrap.kakaocdn.net/dn/dN0vHw/hyGbrQMrqu/RpwZDfTk2mRtz2OoEdDazk/img.jpg?width=1280&amp;amp;height=720&amp;amp;face=0_0_1280_720&quot; data-video-width=&quot;860&quot; data-video-height=&quot;484&quot; data-video-origin-width=&quot;860&quot; data-video-origin-height=&quot;484&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/n_piqb8LGYA&quot; width=&quot;860&quot; height=&quot;484&quot; frameborder=&quot;&quot; allowfullscreen=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;figcaption&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;언리얼&amp;nbsp;엔진&amp;nbsp;버전:&amp;nbsp;4.24.2&lt;/span&gt;&lt;/p&gt;</description>
      <category>프로그래밍/언리얼엔진</category>
      <category>3d 게임 프로그래밍</category>
      <category>Unreal</category>
      <category>언리얼 사용법</category>
      <category>언리얼엔진</category>
      <category>언리얼엔진 사용법</category>
      <author>panpro</author>
      <guid isPermaLink="true">https://panpro.tistory.com/428</guid>
      <comments>https://panpro.tistory.com/428#entry428comment</comments>
      <pubDate>Wed, 27 May 2020 01:26:00 +0900</pubDate>
    </item>
    <item>
      <title>언리얼엔진 강좌 49 [인공지능-10] Behavior Tree 06 - Service</title>
      <link>https://panpro.tistory.com/427</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;unreal_title-049.png&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/IQd9c/btqD8hvxaDb/MkyVl4JM51ewAoUIThhfZ1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/IQd9c/btqD8hvxaDb/MkyVl4JM51ewAoUIThhfZ1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/IQd9c/btqD8hvxaDb/MkyVl4JM51ewAoUIThhfZ1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FIQd9c%2FbtqD8hvxaDb%2FMkyVl4JM51ewAoUIThhfZ1%2Fimg.png&quot; data-filename=&quot;unreal_title-049.png&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;쌩초보를&amp;nbsp;위한&amp;nbsp;언리얼&amp;nbsp;엔진&amp;nbsp;4&amp;nbsp;강좌입니다. &lt;br /&gt;&lt;br /&gt;언리얼&amp;nbsp;엔진&amp;nbsp;강의&amp;nbsp;49번째&amp;nbsp;시간,&amp;nbsp; &lt;br /&gt;언리얼&amp;nbsp;엔진&amp;nbsp;인공지능(unreal&amp;nbsp;engine&amp;nbsp;AI)&amp;nbsp;10번째&amp;nbsp;시간으로 &lt;br /&gt;Behavior&amp;nbsp;Tree에서&amp;nbsp;사용하는 &lt;br /&gt;Service에&amp;nbsp;대해&amp;nbsp;설명합니다.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;Service는&amp;nbsp; &lt;br /&gt;Behavior&amp;nbsp;Tree에서&amp;nbsp; &lt;br /&gt;각&amp;nbsp;task나&amp;nbsp;composite에&amp;nbsp;붙여&amp;nbsp;사용하는데,&amp;nbsp; &lt;br /&gt;task가&amp;nbsp;실행되기&amp;nbsp;전에&amp;nbsp;먼저&amp;nbsp;실행되어&amp;nbsp; &lt;br /&gt;blackboard에서&amp;nbsp;값을&amp;nbsp;읽어&amp;nbsp;각&amp;nbsp;task에&amp;nbsp;값을&amp;nbsp;공급하는&amp;nbsp;등의&amp;nbsp;역할을&amp;nbsp;합니다.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;또한&amp;nbsp;Service란&amp;nbsp;이름처럼&amp;nbsp;task나&amp;nbsp;composite가&amp;nbsp;실행되는&amp;nbsp;동안에 &lt;br /&gt;주기적으로&amp;nbsp;동작을&amp;nbsp;반복수행합니다. &lt;br /&gt;&lt;br /&gt;언리얼&amp;nbsp;엔진&amp;nbsp;버전:&amp;nbsp;4.24.2&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure data-ke-type=&quot;video&quot; data-ke-style=&quot;alignCenter&quot; data-video-host=&quot;youtube&quot; data-video-url=&quot;https://www.youtube.com/watch?v=GHn9j0roJqg&quot; data-video-thumbnail=&quot;https://scrap.kakaocdn.net/dn/cb4F7S/hyF1JXYUXz/kkYftZDVFHMc7k8rQBpCpK/img.jpg?width=1280&amp;amp;height=720&amp;amp;face=0_0_1280_720&quot; data-video-width=&quot;860&quot; data-video-height=&quot;484&quot; data-video-origin-width=&quot;860&quot; data-video-origin-height=&quot;484&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/GHn9j0roJqg&quot; width=&quot;860&quot; height=&quot;484&quot; frameborder=&quot;&quot; allowfullscreen=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;figcaption&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>프로그래밍/언리얼엔진</category>
      <category>3d 게임 만들기</category>
      <category>game engine</category>
      <category>Unreal</category>
      <category>게임엔진</category>
      <category>언리얼 사용법</category>
      <author>panpro</author>
      <guid isPermaLink="true">https://panpro.tistory.com/427</guid>
      <comments>https://panpro.tistory.com/427#entry427comment</comments>
      <pubDate>Wed, 13 May 2020 00:23:32 +0900</pubDate>
    </item>
  </channel>
</rss>