<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>cle_0324.log</title>
        <link>https://velog.io/</link>
        <description>Programmer</description>
        <lastBuildDate>Thu, 12 Jun 2025 02:46:59 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <copyright>Copyright (C) 2019. cle_0324.log. All rights reserved.</copyright>
        <atom:link href="https://v2.velog.io/rss/cle_0324" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[Collider & Rigidbody]]></title>
            <link>https://velog.io/@cle_0324/ColliderRigidbody</link>
            <guid>https://velog.io/@cle_0324/ColliderRigidbody</guid>
            <pubDate>Thu, 12 Jun 2025 02:46:59 GMT</pubDate>
            <description><![CDATA[<p><a href="https://velog.io/@cle_0324/UnityDocs">Unity Docs</a></p>
<h3 id="collider">Collider</h3>
<blockquote>
</blockquote>
<p>Collider는 오브젝트의 물리적인 경계를 정의해주며,
충돌 감지, 트리거 이벤트, 중력 반응의 기준이 되는 영역입니다.
</br>
주요 요소</p>
<ul>
<li><strong>isTrigger</strong><br>물리 충돌 대신 이벤트 감지만 수행 <code>OnTrigger 계열 사용</code></li>
<li><strong>material</strong>
마찰, 반발력 등을 정의하는 물리 재질</li>
<li><strong>center</strong><br>Vector3    충돌 영역 중심 위치</li>
<li><strong>size, radius, height</strong><br>충돌 영역 크기 <code>Collider 종류마다 다름</code></li>
</ul>
<h3 id="rigidbody">Rigidbody</h3>
<blockquote>
</blockquote>
<p>Rigidbody는 오브젝트에 중력, 질량, 힘, 속도, 회전, 마찰 등
실제 물리 법칙에 따른 움직임을 적용할 수 있게 해줍니다.
유니티에서 충돌이 발생하려면 움직임등의 상호 작용을 받아야 하기 때문에
충돌에 있어서 필수적인 요소중 하나입니다.
</br>
주요 요소</p>
<ul>
<li><p><strong>mass</strong>
질량 (기본 1) <code>관성에 영향</code></p>
</li>
<li><p><strong>drag</strong><br>선속도 감쇠 <code>공기 저항</code></p>
</li>
<li><p><strong>angularDrag</strong>
회전 감쇠</p>
</li>
<li><p><strong>useGravity</strong>
중력 적용 여부</p>
</li>
<li><p><strong>isKinematic</strong><br>물리 계산 사용 안 하고 수동으로 위치 제어</p>
</li>
<li><p><strong>interpolation</strong><br>부드러운 이동 처리</p>
<ul>
<li>None
보간 없음 <code>빠르지만 부자연스러울 수 있음</code></li>
<li>Interpolate
이전 프레임을 기준으로 현재 위치 보간 <code>부드럽게 보임</code></li>
<li>Extrapolate
현재 위치를 기준으로 다음 위치 예측 <code>빠른 반응에 유리, 예측 오류 가능</code></li>
</ul>
</li>
<li><p><strong>collisionDetectionMode</strong>
충돌 검출 정확도</p>
<ul>
<li>iscrete 
느린 속도용. 프레임마다 충돌 검사. 빠른 오브젝트에선 뚫림</li>
<li>Continuous<br>빠르게 움직이는 Rigidbody가 Static Collider와의 충돌을 더 정밀하게 계산</li>
<li>ContinuousDynamic<br>Rigidbody가 다른 움직이는 Rigidbody와도 정확하게 충돌</li>
<li>ContinuousSpeculative<br>예측 기반 충돌 처리. 성능 최적화 + 터널링 방지</li>
</ul>
<h2 id="rigid-body-주요-함수">Rigid body 주요 함수</h2>
<h3 id="moveposition">MovePosition</h3>
<blockquote>
</blockquote>
<pre><code class="language-cpp">   public void MovePosition(Vector3 position)</code></pre>
<p><span style ="color:slateblue"> <strong>Paramter</strong> </span> </p>
<ul>
<li><strong>position</strong>
이동 시킬 위치<blockquote>
</blockquote>
Rigidbody를 물리적으로 해당 위치로 이동시킵니다</li>
</ul>
<h3 id="moverotation">MoveRotation</h3>
<blockquote>
</blockquote>
<pre><code class="language-cpp">   public void MoveRotation(Quaternion rot)</code></pre>
<p><span style ="color:slateblue"> <strong>Paramter</strong> </span> </p>
<ul>
<li><strong>rot</strong>
적용할 회전값<blockquote>
</blockquote>
Rigidbody의 회전을 물리적으로 적용합니다.</li>
</ul>
<h3 id="addforce">AddForce</h3>
<blockquote>
</blockquote>
<pre><code class="language-cpp">   public void AddForce(Vector3 force)</code></pre>
<p><span style ="color:slateblue"> <strong>Paramter</strong> </span> </p>
<ul>
<li><strong>force</strong>
힘의 방향과 크기<blockquote>
</blockquote>
Rigidbody에 외부 힘을 가합니다</li>
</ul>
<h3 id="addrelativeforce">AddRelativeForce</h3>
<blockquote>
</blockquote>
<pre><code class="language-cpp"> public void AddRelativeForce(Vector3 force)</code></pre>
<p><span style ="color:slateblue"> <strong>Paramter</strong> </span> </p>
<ul>
<li><strong>force</strong>
힘의 로컬 방향과 크기<blockquote>
</blockquote>
Rigidbody의 로컬 좌표계 기준으로 힘 적용</li>
</ul>
<h3 id="addtorque">AddTorque</h3>
<blockquote>
</blockquote>
<pre><code class="language-cpp"> public void AddTorque(Vector3 torque)</code></pre>
<p><span style ="color:slateblue"> <strong>Paramter</strong> </span> </p>
<ul>
<li><strong>torque</strong>
회전 방향 및 세기<blockquote>
</blockquote>
Rigidbody에 회전력을 가합니다. </li>
</ul>
<h3 id="addexplosionforce">AddExplosionForce</h3>
<blockquote>
</blockquote>
<pre><code class="language-cpp">   public void AddExplosionForce(float explosionForce, Vector3 explosionPosition, float explosionRadius)</code></pre>
<p><span style ="color:slateblue"> <strong>Paramter</strong> </span> </p>
<ul>
<li><strong>explosionForce</strong>
폭발의 기본 힘</li>
<li><strong>explosionPosition</strong>
폭발 중심 좌표</li>
<li><strong>explosionRadius</strong>
폭발 반경<blockquote>
</blockquote>
지정 위치를 중심으로 폭발 효과처럼 힘을 퍼뜨립니다.</li>
</ul>
<h3 id="sleep">Sleep</h3>
<blockquote>
</blockquote>
<pre><code class="language-cpp"> public extern void Sleep();</code></pre>
<blockquote>
</blockquote>
<p>Rigidbody를 비활성화시켜 물리 연산을 잠시 멈춥니다.</p>
<h3 id="wakeup">WakeUp</h3>
<blockquote>
</blockquote>
<pre><code class="language-cpp">   public extern void WakeUp();</code></pre>
<blockquote>
</blockquote>
<p>Sleep()된 Rigidbody를 강제로 깨웁니다.</p>
<h3 id="issleeping">IsSleeping</h3>
<blockquote>
</blockquote>
<pre><code class="language-cpp">   public extern bool IsSleeping();</code></pre>
<blockquote>
</blockquote>
<p>현재 Rigidbody가 잠들어 있는지 확인합니다.</p>
</li>
</ul>
<h3 id="-forcemode">+ ForceMode</h3>
<blockquote>
</blockquote>
<p> AddForce , AddExplosionForce , AddTorque , AddRelativeForce 등을 사용할 때 
 마지막 파라미터로 사용하는 열거형으로 미 표기시  ForceMode.Force 가 들어갑니다.</p>
<ul>
<li>Force<br>연속적인 힘 <code>mass 고려</code></li>
<li>Impulse<br>순간적인 충격 <code>mass 고려</code></li>
<li>VelocityChange<br>속도 직접 변경 <code>mass 무시</code></li>
<li>Acceleration<br>가속도 부여 <code>mass 무시</code></li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[Animator]]></title>
            <link>https://velog.io/@cle_0324/Animator</link>
            <guid>https://velog.io/@cle_0324/Animator</guid>
            <pubDate>Thu, 12 Jun 2025 01:49:38 GMT</pubDate>
            <description><![CDATA[<p><a href="https://velog.io/@cle_0324/UnityDocs">Unity Docs</a></p>
<h3 id="animator">Animator</h3>
<blockquote>
</blockquote>
<p>Animator는 Unity에서 애니메이션을 제어하는 핵심 컴포넌트입니다.
Animator Controller와 연결된 상태 머신을 실행하고, 애니메이션 클립을 재생, 전환, 블렌딩하는 기능을 수행합니다.</p>
<h2 id="주요-functons--variables">주요 Functons &amp; Variables</h2>
<h3 id="setbool">SetBool</h3>
<blockquote>
</blockquote>
<pre><code class="language-cs">SetBool(string name, bool value)</code></pre>
<p><span style ="color:slateblue"> <strong>Paramter</strong> </span> </p>
<ul>
<li><strong>name</strong>
Animator Controller에 정의된 bool 파라미터 이름</li>
<li><strong>value</strong><br>설정할 참/거짓 값 <blockquote>
</blockquote>
지정한 bool 파라미터의 값을 설정합니다.</li>
</ul>
<h3 id="setfloat">SetFloat</h3>
<blockquote>
</blockquote>
<pre><code class="language-cs"> public void SetFloat(string name, float value)</code></pre>
<p><span style ="color:slateblue"> <strong>Paramter</strong> </span> </p>
<ul>
<li><strong>name</strong>
Animator Controller에 정의된 float 파라미터 이름</li>
<li><strong>value</strong><br>설정할 실수 값 <blockquote>
</blockquote>
지정한 float 파라미터의 값을 설정합니다.</li>
</ul>
<h3 id="setinteger">SetInteger</h3>
<blockquote>
</blockquote>
<pre><code class="language-cs">public void SetInteger(string name, int value)</code></pre>
<ul>
<li><strong>name</strong>
Animator Controller에 정의된 int 파라미터 이름</li>
<li><strong>value</strong><br>설정할 정수 값 <span style ="color:slateblue"> <strong>Paramter</strong> </span> <blockquote>
</blockquote>
지정한 Integer 파라미터의 값을 설정합니다.</li>
</ul>
<h3 id="settrigger">SetTrigger</h3>
<blockquote>
</blockquote>
<pre><code class="language-cs">public void SetTrigger(string name)</code></pre>
<p><span style ="color:slateblue"> <strong>Paramter</strong> </span> </p>
<ul>
<li><strong>name</strong>
Animator Controller에 정의된 trigger 파라미터 이름<blockquote>
</blockquote>
Trigger 파라미터를 활성화 합니다.</li>
</ul>
<h3 id="resettrigger">ResetTrigger</h3>
<blockquote>
</blockquote>
<pre><code class="language-cs">public void ResetTrigger(string name)</code></pre>
<p><span style ="color:slateblue"> <strong>Paramter</strong> </span> </p>
<ul>
<li><strong>name</strong>
Animator Controller에 정의된 trigger 파라미터 이름<blockquote>
</blockquote>
Trigger 파라미터를 강제로 비활성화 합니다.</li>
</ul>
<h3 id="play">Play</h3>
<blockquote>
</blockquote>
<pre><code class="language-cs">public void Play(string stateName)</code></pre>
<p><span style ="color:slateblue"> <strong>Paramter</strong> </span> </p>
<ul>
<li><strong>stateName</strong>
Animator Controller에 정의된 애니메이션 상태의 이름<blockquote>
</blockquote>
특정 애니메이션 상태를 직접 재생시킵니다.</li>
</ul>
<h3 id="getcurrentanimatorstateinfo">GetCurrentAnimatorStateInfo</h3>
<blockquote>
</blockquote>
<pre><code class="language-cs">public AnimatorStateInfo GetCurrentAnimatorStateInfo(int layerIndex)</code></pre>
<p><span style ="color:slateblue"> <strong>Paramter</strong> </span> </p>
<ul>
<li><strong>layerIndex</strong>
어떤 Animator 레이어에서 상태를 가져올지 지정<blockquote>
</blockquote>
지정된 레이어에서 현재 실행 중인 상태 정보를 반환합니다.</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[CharacterController ]]></title>
            <link>https://velog.io/@cle_0324/CharacterController</link>
            <guid>https://velog.io/@cle_0324/CharacterController</guid>
            <pubDate>Thu, 12 Jun 2025 01:34:04 GMT</pubDate>
            <description><![CDATA[<p><a href="https://velog.io/@cle_0324/UnityDocs">Unity Docs</a></p>
<h3 id="charactercontroller">CharacterController</h3>
<blockquote>
</blockquote>
<p>비물리적 기반의 충돌 감지 및 이동 처리 전용 컴포넌트 클래스입니다.</p>
<h3 id="point">Point</h3>
<blockquote>
</blockquote>
<ul>
<li>Collider 기반으로 자체적으로 충돌 모양을 정의함 <code>capsule 형태 고정</code></li>
<li>Kinematic 기반으로 Rigidbody와 달리 물리 엔진 힘에 반응하지 않음. <code>외부 힘 적용 불가</code></li>
<li>이동 함수 제공 <code>Move, SimpleMove</code></li>
<li>지형/계단/미끄럼/움직임 중심을 처리 가능</li>
<li>이동만 제공하며 중력/점프/힘은 사용자가 코드로 제어</li>
<li>Rigidbody 없이 충돌만 처리되므로 성능이 우수하고 안정적</li>
<li>땅에 닿았는지 여부 확인 가능 <code>자동 판정</code><blockquote>
</blockquote>
이를 통해 물리 계산을 사용하지 않아 경량 시스템 기반이며 사용자가 직접 제어하기 때문에 제어권과 정밀한 제작이 가능하다.</li>
</ul>
<h2 id="주요-functions--variables">주요 Functions &amp; Variables</h2>
<h3 id="move">Move</h3>
<blockquote>
</blockquote>
<pre><code class="language-cs">public CollisionFlags Move(Vector3 motion)</code></pre>
<p><span style ="color:slateblue"> <strong>Paramter</strong> </span> </p>
<ul>
<li><strong>motion</strong> 
캐릭터를 이동시킬 거리와 방향 <blockquote>
</blockquote>
이동 거리 기반으로 이동하며 중력이 작동되지 않는다.</li>
</ul>
<h3 id="simple-move">Simple Move</h3>
<blockquote>
</blockquote>
<pre><code class="language-cs">    public bool SimpleMove(Vector3 speed)</code></pre>
<ul>
<li><strong>Speed</strong> 
캐릭터를 이동시킬 방향과 속도<blockquote>
</blockquote>
속도 기반으로 이동하며 중력이 자동 적용된다.
Time.deltaTime 도 자동으로 계산한다.</li>
</ul>
<h3 id="variables">Variables</h3>
<blockquote>
</blockquote>
<pre><code class="language-cpp">public extern bool isGrounded</code></pre>
<p>캐릭터가 땅에 닿았는 지 판단하는 변수.
Move 호출 후 땅에 닿았는지 판단 / SimpleMove 에서는 이 값이 즉시 갱신되지 않음</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[Unity Docs]]></title>
            <link>https://velog.io/@cle_0324/UnityDocs</link>
            <guid>https://velog.io/@cle_0324/UnityDocs</guid>
            <pubDate>Thu, 12 Jun 2025 01:05:10 GMT</pubDate>
            <description><![CDATA[<p><a href="https://velog.io/@cle_0324/Unity-Project-%ED%8C%8C%EC%9D%BC-%EA%B5%AC%EC%A1%B0">Unity File Structure</a>
<a href="https://velog.io/@cle_0324/Matarial">Material</a>
<a href="https://velog.io/@cle_0324/Volume-Component">VolumeComponent</a>
<a href="https://velog.io/@cle_0324/CharacterController">CharacterController</a>
<a href="https://velog.io/@cle_0324/Animator">Animator</a>
<a href="https://velog.io/@cle_0324/ColliderRigidbody">Collider</a>
<a href="https://velog.io/@cle_0324/ColliderRigidbody">Rigidbody</a>
<a href=""></a>
<a href=""></a>
<a href=""></a>
<a href=""></a>
<a href=""></a>
<a href=""></a>
<a href=""></a>
<a href=""></a>
<a href=""></a>
<a href=""></a>
<a href=""></a>
<a href=""></a>
<a href=""></a>
<a href=""></a>
<a href=""></a>
<a href=""></a>
<a href=""></a>
<a href=""></a>
<a href=""></a>
<a href=""></a>
<a href=""></a>
<a href=""></a>
<a href=""></a>
<a href=""></a>
<a href=""></a>
<a href=""></a>
<a href=""></a>
<a href=""></a>
<a href=""></a>
<a href=""></a>
<a href=""></a>
<a href=""></a>
<a href=""></a>
<a href=""></a>
<a href=""></a>
<a href=""></a>
<a href=""></a></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[Volume Component]]></title>
            <link>https://velog.io/@cle_0324/Volume-Component</link>
            <guid>https://velog.io/@cle_0324/Volume-Component</guid>
            <pubDate>Wed, 11 Jun 2025 07:33:25 GMT</pubDate>
            <description><![CDATA[<p><a href="https://velog.io/@cle_0324/UnityDocs">Unity Docs</a></p>
<blockquote>
</blockquote>
<h3 id="volume-component">Volume Component</h3>
<blockquote>
</blockquote>
<p>Volume Component는 Post-processing 또는 Lighting 효과를 개별적으로 정의하는 구성 요소입니다.</p>
<h3 id="tonemapping">Tonemapping</h3>
<blockquote>
</blockquote>
<p>카메라에 입력되는 고정밀 HDR 색상을 화면 출력용 LDR로 변환하는 방식 설정</p>
<ul>
<li>Mode
톤 매핑 알고리즘 선택<ul>
<li>None<br>톤 매핑을 적용하지 않음 (원시 HDR 그대로 출력)</li>
<li>Neutral<br>색상 왜곡 없이 중립적인 톤 매핑 (약간 흐릿함)</li>
<li>ACES (Recommended)
영화 산업에서 사용하는 표준 톤 매핑
높은 대비와 더 자연스러운 밝기 감쇄</li>
</ul>
</li>
</ul>
<h3 id="bloom">Bloom</h3>
<blockquote>
</blockquote>
<p>밝은 부분 주위에 부드러운 빛 번짐 효과를 추가하여, 더 강렬하고 사실적인 광원 느낌을 연출을 설정</p>
<ul>
<li><strong>Threshold</strong><br>Bloom을 적용할 밝기 임계값 (밝은 영역만 선택됨)</li>
<li><strong>Intensity</strong>
Bloom 강도 <code>(0 이상, 기본값 0.7~1.5)</code>
낮을수록 더 많은 픽셀이 Bloom 대상</li>
<li><strong>Scatter</strong>
빛 번짐의 확산 정도 <code>0~1</code>
값이 클수록 더 부드럽게 넓게 퍼짐</li>
<li><strong>Tint Bloom</strong>
색상. 기본은 흰색, 분위기에 따라 색조 조정 가능</li>
<li><strong>Clamp Bloom</strong>
효과의 최대 밝기 제한값 <code>HDR에서 과도한 빛나는 효과 방지</code></li>
<li><strong>High Quality Filtering</strong><br>더 선명하고 정확한 Bloom 필터링 사용 <code>성능 소모 ↑</code></li>
<li><strong>Dirt Texture</strong><br>카메라 렌즈에 묻은 먼지 느낌을 줄 텍스처</li>
<li><strong>Dirt Intensity</strong>
Dirt Texture의 강도</li>
</ul>
<h3 id="vignette">Vignette</h3>
<blockquote>
</blockquote>
<p>화면 가장자리를 어둡게 처리하여 집중감을 높이고, 분위기를 바꾸는 효과</p>
<ul>
<li><strong>Color</strong><br>비네팅 색상 </li>
<li><strong>Center</strong><br>비네팅 중심 좌표 <code>0.5, 0.5가 화면 중앙</code></li>
<li><strong>Intensity</strong>
어두운 테두리 강도 <code>0~1</code>
값이 클수록 어두워짐</li>
<li><strong>Smoothness</strong>
중심에서 외곽으로의 전환 정도 <code>0~1</code>
클수록 부드러운 그라데이션</li>
<li><strong>Rounded</strong><br>원형에 가까운 비네팅 적용 <code>OFF일 경우 타원형</code></li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[Matarial ]]></title>
            <link>https://velog.io/@cle_0324/Matarial</link>
            <guid>https://velog.io/@cle_0324/Matarial</guid>
            <pubDate>Wed, 11 Jun 2025 07:16:51 GMT</pubDate>
            <description><![CDATA[<p><a href="https://velog.io/@cle_0324/UnityDocs">Unity Docs</a></p>
<h3 id="shader">Shader</h3>
<blockquote>
</blockquote>
<ul>
<li>해당 머티리얼이 사용하는 Shader 종류 입니다.</li>
<li>변경시 속성 항목이 변경 됩니다.</li>
<li>Standard , Unlit, HDRP/Lit, URP/Lit 등이 있습니다.</li>
</ul>
<h2 id="urplit-shader-inspector">URP/Lit Shader Inspector</h2>
<h3 id="surface-option">Surface Option</h3>
<blockquote>
</blockquote>
<p>표면에 대한 설정입니다.</p>
<ul>
<li><strong>Workflow Mode</strong><ul>
<li>Metallic <code>금속성 기반</code></li>
<li>Specular <code>반사광 색상 직접 지정</code></li>
</ul>
</li>
<li><strong>Suface Type</strong><ul>
<li>Opaque <code>불투명</code></li>
<li>Transparent <code>반투명</code></li>
</ul>
</li>
<li><strong>Render Face</strong><ul>
<li>Front <code>앞면 렌더링</code></li>
<li>Back <code>뒷면 렌더링</code></li>
<li>Both <code>양면 렌더링</code></li>
</ul>
</li>
<li><strong>Alpha Clipping</strong>
알파 값이 일정 이하일 때 픽셀 제거</li>
<li><strong>Alpha Cutoff</strong>
알파 클리핑에 사용할 임계값 <code>(0~1)</code>
값이 클수록 더 많은 부분이 잘려 나감</li>
</ul>
<h3 id="surface-inputs">Surface Inputs</h3>
<blockquote>
</blockquote>
<p>표면 텍스처 및 질감 설정 입니다.</p>
<ul>
<li><strong>Base Map</strong><br>기본 색상 + 텍스처 (기본 알베도 역할). 알파 채널은 투명도에 사용됨<ul>
<li>Base Color
Base Map이 없을 경우 적용되는 단색.</li>
</ul>
</li>
<li><strong>Metallic</strong><br>금속성 정도 <code>0 = 비금속 | 1 = 완전 금속</code> 
주로 Mask Map의 R채널로 설정됨<ul>
<li>Smoothness<br>표면이 얼마나 매끄러운지.
1 일시 매끄러움 0 일시 거칠음
A채널에 저장되는 경우도 있음<ul>
<li>Smoothness Source<br>Smoothness 값의 위치 설정<code>Base Alpha | Metallic Alpha</code></li>
</ul>
</li>
</ul>
</li>
<li><strong>Normal Map</strong><br>표면의 요철 효과를 추가 <code>빛 반응만 바뀜</code></li>
<li><strong>Height Map</strong>
높낮이 정보 <code>흑백 이미지</code>
UV 왜곡을 통해 깊이처럼 보이게 만듦</li>
<li><strong>Occlusion Map</strong> (AO)
주변광 차폐. 어두운 음영을 강화함<ul>
<li>Emission Map<br>자체 발광. 텍스처 기반으로 빛을 냄</li>
<li>Emission Color<br>발광 색상 설정. HDR 색상 사용 가능</li>
</ul>
</li>
</ul>
<h3 id="detail-inputs">Detail Inputs</h3>
<blockquote>
</blockquote>
<p>세부 디테일 텍스쳐 설정입니다.</p>
<ul>
<li><p><strong>MaskMap</strong>
하나의 RGBA 텍스처에 여러 속성을 압축 저장하는 방식
텍스처를 넣으면 아래 속성들이 비활성화되고 Mask Map로 대체됨</p>
</li>
<li><p><strong>Tiling &amp; Offset</strong>
모든 텍스처에 공통으로 적용.</p>
<ul>
<li>Tiling (X, Y): 반복 횟수</li>
<li>Offset (X, Y): 시작 위치 조정</li>
</ul>
<h3 id="advanced-options">Advanced Options</h3>
<blockquote>
</blockquote>
<p>고급 설정 입니다.</p>
</li>
<li><p><strong>Specular Highlights</strong>
반사광을 계산할지 여부 (OFF 시 재질이 더 무광으로 보임)</p>
</li>
<li><p><strong>Environment Reflections</strong>
Skybox나 Reflection Probe의 반사광을 계산할지 여부</p>
</li>
<li><p><strong>Enable GPU Instancing</strong>
동일 머티리얼의 여러 오브젝트를 GPU에서 효율적으로 렌더링</p>
</li>
<li><p><strong>Sorting Priority</strong> 
렌더링 순서 우선도 설정 </p>
</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[Unity Project 파일 구조]]></title>
            <link>https://velog.io/@cle_0324/Unity-Project-%ED%8C%8C%EC%9D%BC-%EA%B5%AC%EC%A1%B0</link>
            <guid>https://velog.io/@cle_0324/Unity-Project-%ED%8C%8C%EC%9D%BC-%EA%B5%AC%EC%A1%B0</guid>
            <pubDate>Wed, 11 Jun 2025 03:07:34 GMT</pubDate>
            <description><![CDATA[<p><a href="https://velog.io/@cle_0324/UnityDocs">Unity Docs</a></p>
<h3 id="unity-project-file-구조">Unity Project File 구조</h3>
<blockquote>
</blockquote>
<p>Unity Project 생성시 생성되는 파일들.</p>
<ul>
<li><strong>Assets/</strong> <span style = color:red><code>삭제 금지</code> </span>
사용자 리소스<code>모델, 텍스처, 스크립트, 프리팹 등</code>를 저장 폴더. 실제 콘텐츠 존재
사용자가 직접 수정, 관리가 가능하며 삭제시 재생성이 되지 않는다. </br></li>
<li><strong>Library/</strong> <span style = color:mediumaquamarine><code>삭제 가능 , 시간 소요</code></span>
임포트된 에셋, 캐시, 빌드 정보 등 임시 데이터 저장 폴더
Unity Engine 이 직접 관리하며 프로젝트 실행시 자동으로 재생성된다. </br></li>
<li><strong>Logs/</strong> <span style = color:mediumaquamarine><code>삭제 가능</code></span>
Unity 에디터 실행 로그 저장 폴더.<code>디버깅 용도</code>
Unity Engine 이 직접 관리하며 엔진이 필요시 자동으로 재생성된다. </br></li>
<li><strong>obj/</strong>  <span style = color:mediumaquamarine><code>삭제 가능</code></span>
컴파일러가 생성한 임시 바이너리 및 캐시 파일 저장 폴더
Unity Engine 이 직접 관리하며 프로젝트 실행시 자동으로 재생성된다. </br></li>
<li><strong>Packages/</strong> <span style = color:orange><code>삭제 고려</code></span>
프로젝트의 패키지 목록과 버전 정보 저장 폴더
manifest.json 이 중요함.
제한적 삭제가 가능하며 전체 삭제시 패키지 종속성이 깨질 수 있다.<ul>
<li>manifest.json
현재 프로젝트에서 사용하는 Unity 패키지들<code>Package Manager로 설치한 것들</code>의 목록과 버전 정보를 담고 있습니다 </br></li>
</ul>
</li>
<li><strong>ProjectSettings/</strong> <span style = color:red><code>삭제 금지</code></span><br>입력, 태그, 빌드, 그래픽 등 프로젝트 설정 저장 폴더
삭제시 설정이 초기화 된다. </br></li>
<li><strong>Temp/</strong> <span style = color:mediumaquamarine><code>삭제 가능</code></span>
Unity 실행 중 생성되는 작업 <code>에셋 임포트, 컴파일, 씬 열기, 빌드 등</code>  할 때  중간 결과물을  빠르게 처리를 위한 임시 파일 저장 폴더
Unity Engine 이 직접 관리하며 프로젝트 실행시 자동으로 재생성된다. </br></li>
<li><strong>UserSettings/</strong> <span style = color:orange><code>삭제 고려</code></span>
에디터 사용자 셋팅 <code>레이아웃, 환결설정 등</code> 저장 폴더
Unity Engine 이 관리하며 프로젝트 실행시 자동으로 재생성 되지만 사용자 셋팅이 제거됨. </br></li>
<li>Assembly-CSharp.csproj <span style = color:mediumaquamarine><code>삭제 가능</code></span>
Visual Studio용 C# 프로젝트 파일. 
코드 편집기에서 IntelliSense 제공.
삭제 시 Unity Engine 이 자동으로 재생성 </br></li>
<li>Assembly-CSharp-Editor.csproj <span style = color:mediumaquamarine><code>삭제 가능</code></span>
에디터 전용 스크립트를 위한 C# 프로젝트 파일.
삭제 시 Unity Engine 이 자동으로 재생성 </br></li>
<li>sln 파일 <span style = color:mediumaquamarine><code>삭제 가능</code></span>
전체 솔루션 파일
삭제 시 Unity Engine 이 자동으로 재생성 </li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[UGameplayStatics::PlaySoundAtLocation]]></title>
            <link>https://velog.io/@cle_0324/UGameplayStaticsPlaySoundAtLocation</link>
            <guid>https://velog.io/@cle_0324/UGameplayStaticsPlaySoundAtLocation</guid>
            <pubDate>Fri, 02 May 2025 09:16:55 GMT</pubDate>
            <description><![CDATA[<p><a href="https://velog.io/@cle_0324/EPortfolio-Code">EPortfolio docs</a>
<a href="https://velog.io/@cle_0324/"></a></p>
<blockquote>
</blockquote>
<ul>
<li>Unreal Docs
<a href="https://dev.epicgames.com/documentation/en-us/unreal-engine/API/Runtime/Engine/Kismet/UGameplayStatics/PlaySoundAtLocation/2">https://dev.epicgames.com/documentation/en-us/unreal-engine/API/Runtime/Engine/Kismet/UGameplayStatics/PlaySoundAtLocation/2</a></li>
</ul>
<blockquote>
</blockquote>
<p>특정 위치에 사운드를 재생합니다.</p>
<h3 id="code">Code</h3>
<blockquote>
</blockquote>
<pre><code class="language-cpp">    UFUNCTION(BlueprintCallable, Category=&quot;Audio&quot;, meta=(WorldContext=&quot;WorldContextObject&quot;, AdvancedDisplay = &quot;3&quot;, UnsafeDuringActorConstruction = &quot;true&quot;, Keywords = &quot;play&quot;))
    static ENGINE_API void PlaySoundAtLocation
    (
        const UObject* WorldContextObject, 
        USoundBase* Sound,
        FVector Location, 
        FRotator Rotation,
        float VolumeMultiplier = 1.f, 
        float PitchMultiplier = 1.f,
        float StartTime = 0.f, 
        class USoundAttenuation* AttenuationSettings = nullptr,
        USoundConcurrency* ConcurrencySettings = nullptr, 
        const AActor* OwningActor = nullptr,
        const UInitialActiveSoundParams* InitialParams = nullptr
    );</code></pre>
<p><span style ="color:slateblue"> <strong>Paramter</strong> </span> </p>
<ul>
<li><strong>WorldContextObject</strong>
월드를 참조할 수 있는 객체</li>
<li><strong>Sound</strong>
재생할 사운드 자산 </li>
<li><strong>Location</strong><br>사운드를 재생할 월드 좌표</li>
<li><strong>VolumeMultiplier</strong>
볼륨 배수 </li>
<li><strong>PitchMultiplier</strong>
피치 배수</li>
<li><strong>StartTime</strong>
사운드의 시작 지점</li>
<li><strong>AttenuationSettings</strong>
감쇠 설정 </li>
<li><strong>ConcurrencySettings</strong><br>동시에 재생될 수 있는 횟수 제한 설정</li>
<li><strong>OwningActor</strong><br>사운드를 소유하는 액터</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[UGameplayStatics::SpawnEmitterAtLocation]]></title>
            <link>https://velog.io/@cle_0324/UGameplayStaticsSpawnEmitterAtLocation</link>
            <guid>https://velog.io/@cle_0324/UGameplayStaticsSpawnEmitterAtLocation</guid>
            <pubDate>Fri, 02 May 2025 09:12:05 GMT</pubDate>
            <description><![CDATA[<p><a href="https://velog.io/@cle_0324/EPortfolio-Code">EPortfolio docs</a>
<a href="https://velog.io/@cle_0324/"></a></p>
<blockquote>
</blockquote>
<ul>
<li>Unreal Docs
<a href="https://dev.epicgames.com/documentation/en-us/unreal-engine/API/Runtime/Engine/Kismet/UGameplayStatics/SpawnEmitterAtLocation/2">https://dev.epicgames.com/documentation/en-us/unreal-engine/API/Runtime/Engine/Kismet/UGameplayStatics/SpawnEmitterAtLocation/2</a></li>
</ul>
<blockquote>
</blockquote>
<p>월드의 특정 위치에 파티클 이펙트를 생성합니다.</p>
<h3 id="code">Code</h3>
<blockquote>
</blockquote>
<pre><code class="language-cpp">    static ENGINE_API UParticleSystemComponent* SpawnEmitterAtLocation
    (
        UWorld* World, 
        UParticleSystem* EmitterTemplate,
        const FTransform&amp; SpawnTransform, 
        bool bAutoDestroy = true, 
        EPSCPoolMethod PoolingMethod = EPSCPoolMethod::None,
        bool bAutoActivate = true
    );</code></pre>
<p><span style ="color:slateblue"> <strong>Paramter</strong> </span> </p>
<ul>
<li><strong>WorldContextObject</strong><br>월드를 얻기 위한 컨텍스트 객체</li>
<li><strong>EmitterTemplate</strong><br>사용할 파티클 시스템 </li>
<li><strong>Location</strong><br>파티클을 생성할 월드 위치</li>
<li><strong>Rotation</strong><br>파티클의 회전값</li>
<li><strong>Scale</strong><br>파티클 스케일 조정</li>
<li><strong>bAutoDestroy</strong><br>파티클 재생 완료 후 자동으로 파괴할지 여부</li>
<li><strong>PoolingMethod</strong><br>파티클 풀링 방식</li>
<li><strong>bAutoActivateSystem</strong>
생성 시 자동 재생 여부 </li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[UProjectileMovementComponent]]></title>
            <link>https://velog.io/@cle_0324/UProjectileMovementComponent</link>
            <guid>https://velog.io/@cle_0324/UProjectileMovementComponent</guid>
            <pubDate>Fri, 02 May 2025 06:03:55 GMT</pubDate>
            <description><![CDATA[<p><a href="https://velog.io/@cle_0324/EPortfolio-Code">EPortfolio docs</a></p>
<blockquote>
</blockquote>
<ul>
<li>Unreal Docs
<a href="https://dev.epicgames.com/documentation/en-us/unreal-engine/API/Runtime/Engine/GameFramework/UProjectileMovementComponent/__ctor">https://dev.epicgames.com/documentation/en-us/unreal-engine/API/Runtime/Engine/GameFramework/UProjectileMovementComponent/__ctor</a></li>
</ul>
<blockquote>
</blockquote>
<p>발사체의 물리적 움직임을 처리하는 전용 컴포넌트입니다.</p>
<h3 id="inheritance-hierachy">Inheritance Hierachy</h3>
<ul>
<li><a href="https://velog.io/@cle_0324/UActorComponent">UActorComponent</a></li>
<li>UMovementComponent</li>
<li>UProjectileMovementComponent</li>
</ul>
<h3 id="variables">Variables</h3>
<blockquote>
</blockquote>
<pre><code class="language-cpp">    UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=Projectile)
    float InitialSpeed;</code></pre>
<p>발사체 시작 속도</p>
<hr>
<pre><code class="language-cpp">    UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=Projectile)
    float MaxSpeed;</code></pre>
<p>최대 속도 </p>
<hr>
<pre><code class="language-cpp">    UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=Projectile)
    uint8 bRotationFollowsVelocity:1;</code></pre>
<p>회전이 속도 방향을 따라가도록 설정</p>
<hr>
<pre><code class="language-cpp">    UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=ProjectileBounces)
    uint8 bShouldBounce:1;</code></pre>
<p>충돌 시 튕김을 허용할지 여부</p>
<hr>
<pre><code class="language-cpp">    UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=ProjectileBounces, meta=(ClampMin=&quot;0&quot;, UIMin=&quot;0&quot;))
    float Bounciness;</code></pre>
<p>튕길 때 반사 계수 </p>
<hr>
<pre><code class="language-cpp">    UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=Projectile)
    float ProjectileGravityScale;</code></pre>
<p>중력 비율 </p>
<hr>
<pre><code class="language-cpp">    UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=Homing)
    uint8 bIsHomingProjectile:1;</code></pre>
<p>호밍 여부 설정</p>
<hr>
<pre><code class="language-cpp">    UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=Homing)
    float HomingAccelerationMagnitude;</code></pre>
<p>호밍 속도 증가율</p>
<hr>
<pre><code class="language-cpp">    UPROPERTY(VisibleInstanceOnly, BlueprintReadWrite, Category=Homing)
    TWeakObjectPtr&lt;USceneComponent&gt; HomingTargetComponent;</code></pre>
<p>추적할 대상 컴포넌트 설정</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[AActor::SetLifeSpan]]></title>
            <link>https://velog.io/@cle_0324/AActorSetLifeSpan</link>
            <guid>https://velog.io/@cle_0324/AActorSetLifeSpan</guid>
            <pubDate>Thu, 01 May 2025 15:49:26 GMT</pubDate>
            <description><![CDATA[<p><a href="https://velog.io/@cle_0324/EPortfolio-Code">EPortfolio docs</a>
<a href="https://velog.io/@cle_0324/AActor">AActor</a></p>
<blockquote>
</blockquote>
<p>액터의 수명을 설정합니다.</p>
<h3 id="code">Code</h3>
<blockquote>
</blockquote>
<pre><code class="language-cpp">    UFUNCTION(BlueprintCallable, Category=&quot;Actor&quot;, meta=(Keywords = &quot;delete destroy&quot;))
    ENGINE_API virtual void SetLifeSpan( float InLifespan );</code></pre>
<p><span style ="color:slateblue"> <strong>Paramter</strong> </span> </p>
<ul>
<li><strong>InLifespan</strong>
액터의 수명</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[AHUD::DrawTexture]]></title>
            <link>https://velog.io/@cle_0324/AHUDDrawTexture</link>
            <guid>https://velog.io/@cle_0324/AHUDDrawTexture</guid>
            <pubDate>Thu, 01 May 2025 14:31:31 GMT</pubDate>
            <description><![CDATA[<p><a href="https://velog.io/@cle_0324/EPortfolio-Code">EPortfolio docs</a>
<a href="https://velog.io/@cle_0324/AHUD">AHUD</a></p>
<blockquote>
</blockquote>
<p>HUD 에 텍스처를 그립니다.</p>
<h3 id="code">Code</h3>
<blockquote>
</blockquote>
<pre><code class="language-cpp">    UFUNCTION(BlueprintCallable, Category=HUD, meta=(AdvancedDisplay = &quot;9&quot;))
    ENGINE_API void DrawTexture(
    UTexture* Texture,
    float ScreenX, 
    float ScreenY, 
    float ScreenW, 
    float ScreenH, 
    float TextureU,
    float TextureV,
    float TextureUWidth,
    float TextureVHeight,
    FLinearColor TintColor=FLinearColor::White,
    EBlendMode BlendMode=BLEND_Translucent,
    float Scale=1.f, 
    bool bScalePosition=false,
    float Rotation=0.f,
    FVector2D RotPivot=FVector2D::ZeroVector);</code></pre>
<p><span style ="color:slateblue"> <strong>Paramter</strong> </span> </p>
<ul>
<li><strong>Texture</strong>
화면에 그릴 텍스처 </li>
<li><strong>ScreenX</strong> <code>왼쪽 상단 기준</code>
HUD 캔버스 상의 화면 X 좌표</li>
<li><strong>ScreenY</strong> <code>왼쪽 상단 기준</code><br>HUD 캔버스 상의 화면 Y 좌표</li>
<li><strong>ScreenW</strong> <code>픽셀 단위</code>
텍스처를 그릴 너비</li>
<li><strong>ScreenH</strong> <code>픽셀 단위</code>
텍스처를 그릴 높이 </li>
<li><strong>TextureU</strong>
텍스처 내에서 잘라낼 시작 U 좌표</li>
<li><strong>TextureV</strong>
텍스처 내에서 잘라낼 시작 V 좌표</li>
<li><strong>TextureUWidth</strong>
텍스처 내에서 잘라낼 너비 영역 크기</li>
<li><strong>TextureVHeight</strong>
텍스처 내에서 잘라낼 높이 영역 크기</li>
<li><strong>Color</strong><br>곱해질 색상 </li>
<li><strong>BlendMode</strong><br>혼합 모드 </li>
<li><strong>Scale</strong><br>전체 텍스처 크기와 위치에 곱해질 스케일 값</li>
<li><strong>bScalePosition</strong><br>true일 경우 위치 또한 Scale 값의 영향을 받음</li>
<li><strong>Rotation</strong><br>텍스처를 회전시킬 각도</li>
<li><strong>RotPivot</strong>
회전의 기준점 </li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[UUserWidget::CreateWidget]]></title>
            <link>https://velog.io/@cle_0324/UUserWidgetCreateWidget</link>
            <guid>https://velog.io/@cle_0324/UUserWidgetCreateWidget</guid>
            <pubDate>Thu, 01 May 2025 14:14:39 GMT</pubDate>
            <description><![CDATA[<p><a href="https://velog.io/@cle_0324/EPortfolio-Code">EPortfolio docs</a>
<a href="https://velog.io/@cle_0324/UUserWidget">UUserWidget</a></p>
<blockquote>
</blockquote>
<p>UMG 위젯을 생성합니다.</p>
<h3 id="code">Code</h3>
<blockquote>
</blockquote>
<pre><code class="language-cpp">template &lt;typename WidgetT = UUserWidget, typename OwnerType = UObject&gt;
WidgetT* CreateWidget(OwnerType OwningObject, TSubclassOf&lt;UUserWidget&gt; UserWidgetClass = WidgetT::StaticClass(), FName WidgetName = NAME_None);</code></pre>
<p><span style ="color:slateblue"> <strong>Paramter</strong> </span> </p>
<ul>
<li><strong>OwningObject</strong>
위젯을 소유할 객체</li>
<li><strong>UserWidgetClass</strong>
생성할 위젯의 클래스</li>
<li><strong>WidgetName</strong>
위젯 인스턴스의 고유 식별 이름</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[UGameplayStatics::DeprojectScreenToWorld]]></title>
            <link>https://velog.io/@cle_0324/UGameplayStaticsDeprojectScreenToWorld</link>
            <guid>https://velog.io/@cle_0324/UGameplayStaticsDeprojectScreenToWorld</guid>
            <pubDate>Sun, 13 Apr 2025 13:12:27 GMT</pubDate>
            <description><![CDATA[<p><a href="https://velog.io/@cle_0324/EPortfolio-Code">EPortfolio docs</a></p>
<blockquote>
</blockquote>
<p>스크린 좌표를 월드좌표로 변환합니다.</p>
<h3 id="code">Code</h3>
<blockquote>
</blockquote>
<pre><code class="language-cpp">    UFUNCTION(BlueprintPure, Category = &quot;Camera&quot;, meta = (Keywords = &quot;unproject&quot;))
    static ENGINE_API bool DeprojectScreenToWorld
    (
        APlayerController const* Player,
        const FVector2D&amp; ScreenPosition, 
        FVector&amp; WorldPosition, 
        FVector&amp; WorldDirection
    );</code></pre>
<p><span style ="color:slateblue"> <strong>Paramter</strong> </span> </p>
<ul>
<li><strong>Player</strong>
스크린을 기준으로 할 컨트롤러</li>
<li><strong>ScreenPosition</strong>
스크린 좌표</li>
<li><strong>WorldPosition</strong>
변환된 월드 좌표</li>
<li><strong>WorldDirection</strong>
변환된 월드 방향</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[UKismetMathLibrary::RandomUnitVectorInConeInDegrees]]></title>
            <link>https://velog.io/@cle_0324/UKismetMathLibraryRandomUnitVectorInConeInDegrees</link>
            <guid>https://velog.io/@cle_0324/UKismetMathLibraryRandomUnitVectorInConeInDegrees</guid>
            <pubDate>Sun, 13 Apr 2025 11:33:06 GMT</pubDate>
            <description><![CDATA[<p><a href="https://velog.io/@cle_0324/EPortfolio-Code">EPortfolio docs</a></p>
<blockquote>
</blockquote>
<p>Unreal Engine에서 특정 방향을 중심으로 일정 각도 내에서 랜덤한 단위 벡터를 생성해주는 함수입니다. </p>
<h3 id="code">Code</h3>
<blockquote>
</blockquote>
<pre><code class="language-cpp">    UFUNCTION(BlueprintPure, Category = &quot;Math|Random&quot;, meta=(NotBlueprintThreadSafe))
    static inline FVector RandomUnitVectorInConeInDegrees
    (
        FVector ConeDir,
        float ConeHalfAngleInDegrees
    )</code></pre>
<p><span style ="color:slateblue"> <strong>Paramter</strong> </span> </p>
<ul>
<li><strong>ConeDir</strong>
원뿔의 중심 방향</li>
<li><strong>ConeHalfAngleInDegrees</strong>
중심에서 가장자리까지의 각도</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[APawn::IsLocallyControlled]]></title>
            <link>https://velog.io/@cle_0324/APawnIsLocallyControlled</link>
            <guid>https://velog.io/@cle_0324/APawnIsLocallyControlled</guid>
            <pubDate>Sat, 29 Mar 2025 08:46:36 GMT</pubDate>
            <description><![CDATA[<p><a href="https://velog.io/@cle_0324/EPortfolio-Code">EPortfolio docs</a>
<a href="https://velog.io/@cle_0324/MultiPlayer">Multi Player Docs</a>
<a href="https://velog.io/@cle_0324/APawn">APawn</a></p>
<blockquote>
</blockquote>
<p>현재 Pawn이 로컬에서 조작되고 있는지 확인합니다.</p>
<h3 id="code">Code</h3>
<blockquote>
</blockquote>
<pre><code class="language-cpp">    UFUNCTION(BlueprintPure, Category=Pawn)
    ENGINE_API virtual bool IsLocallyControlled() const;</code></pre>
]]></description>
        </item>
        <item>
            <title><![CDATA[UWorld::GetAuthGameMode]]></title>
            <link>https://velog.io/@cle_0324/UWorldGetAuthGameMode</link>
            <guid>https://velog.io/@cle_0324/UWorldGetAuthGameMode</guid>
            <pubDate>Mon, 17 Mar 2025 10:00:20 GMT</pubDate>
            <description><![CDATA[<p><a href="https://velog.io/@cle_0324/EPortfolio-Code">EPortfolio docs</a></p>
<blockquote>
</blockquote>
<p>Unreal Engine에서 서버의 게임 모드에 대한 정보를 얻기 위한 함수입니다.</p>
<h3 id="code">Code</h3>
<blockquote>
</blockquote>
<pre><code class="language-cpp">    T* GetAuthGameMode() const
    {
        return Cast&lt;T&gt;(AuthorityGameMode);
    }</code></pre>
]]></description>
        </item>
        <item>
            <title><![CDATA[FTimerManager::SetTimer]]></title>
            <link>https://velog.io/@cle_0324/FTimerManagerSetTimer</link>
            <guid>https://velog.io/@cle_0324/FTimerManagerSetTimer</guid>
            <pubDate>Mon, 17 Mar 2025 09:54:43 GMT</pubDate>
            <description><![CDATA[<p><a href="https://velog.io/@cle_0324/EPortfolio-Code">EPortfolio docs</a></p>
<blockquote>
</blockquote>
<p>Unreal Engine에서 타이머를 설정하는 템플릿 함수입니다.</p>
<h3 id="code">Code</h3>
<blockquote>
</blockquote>
<pre><code class="language-cpp">    template&lt; class UserClass &gt;
    FORCEINLINE void SetTimer(FTimerHandle&amp; InOutHandle, UserClass* InObj, typename FTimerDelegate::TMethodPtr&lt; UserClass &gt; InTimerMethod, float InRate, bool InbLoop = false, float InFirstDelay = -1.f)
    {
        InternalSetTimer(InOutHandle, FTimerUnifiedDelegate( FTimerDelegate::CreateUObject(InObj, InTimerMethod) ), InRate, InbLoop, InFirstDelay);
    }</code></pre>
<p><span style ="color:slateblue"> <strong>Paramter</strong> </span> </p>
<ul>
<li><strong>InOutHandle</strong>
타이머를 고유하게 식별하는 핸들입니다. 타이머를 취소하거나 다른 작업을 할 때 이 핸들이 사용됩니다.</li>
<li><strong>InObj</strong>
타이머를 설정할 대상 클래스의 포인터입니다. 이 클래스는 지정된 메서드를 가지고 있어야 하며, 이 메서드는 타이머가 실행될 때 호출됩니다.</li>
<li><strong>InTimerMethod</strong>
타이머가 실행할 메서드입니다. 이 메서드는 UserClass 클래스의 멤버 함수이어야 합니다.</li>
<li><strong>InRate</strong>
타이머가 호출될 주기</li>
<li><strong>InbLoop</strong>
타이머의 반복 여부</li>
<li><strong>InFirstDelay</strong>
타이머가 처음 시작되기 전의 지연 시간</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[AActor::HasAuthority]]></title>
            <link>https://velog.io/@cle_0324/AActorHasAuthority</link>
            <guid>https://velog.io/@cle_0324/AActorHasAuthority</guid>
            <pubDate>Mon, 17 Mar 2025 08:15:12 GMT</pubDate>
            <description><![CDATA[<p><a href="https://velog.io/@cle_0324/EPortfolio-Code">EPortfolio docs</a>
<a href="https://velog.io/@cle_0324/MultiPlayer">Multi Player Docs</a>
<a href="https://velog.io/@cle_0324/AActor">AActor</a></p>
<blockquote>
</blockquote>
<p>언리얼 엔진에서 네트워크 권한을 확인하는 함수입니다.
Clinet 라면 false 를 Server 라면 true 를 반환합니다.</p>
<h3 id="code">Code</h3>
<blockquote>
</blockquote>
<pre><code class="language-cpp">    UFUNCTION(BlueprintCallable, Category=&quot;Networking&quot;)
    ENGINE_API bool HasAuthority() const;</code></pre>
]]></description>
        </item>
        <item>
            <title><![CDATA[EPortfolio Enums]]></title>
            <link>https://velog.io/@cle_0324/EPortfolio-Enums</link>
            <guid>https://velog.io/@cle_0324/EPortfolio-Enums</guid>
            <pubDate>Mon, 17 Mar 2025 07:44:11 GMT</pubDate>
            <description><![CDATA[<p><a href="https://velog.io/@cle_0324/EPortfolio-Code">EPortfolio docs</a></p>
<h3 id="eweaponstate">EWeaponState</h3>
<blockquote>
</blockquote>
<ul>
<li>WS_Initial 
초기 상태입니다.</li>
<li>WS_Equipped 
장착 상태입니다.</li>
<li>WS_Dropped<br>버려진 상태입니다.</li>
<li>WS_MAX<br>범위 검사를 위한 EWeaponState 의 최댓값입니다.</li>
</ul>
<h3 id="eweapontype">EWeaponType</h3>
<blockquote>
</blockquote>
<ul>
<li>WT_Rifle
돌격 소총 입니다.</li>
<li>WT_MAX<br>범위 검사를 위한 EWeaponType 의 최댓값입니다.</li>
</ul>
]]></description>
        </item>
    </channel>
</rss>