Notice
Recent Posts
Recent Comments
Link
«   2026/05   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
Tags
more
Archives
Today
Total
관리 메뉴

개발일기

유니티#20.5 총 본문

Unity

유니티#20.5 총

kimjw7815 2025. 5. 3. 22:05

빵야빵야

// Assets/Scripts/PlayerSystemManager/InventorySystem/ItemUsingController.cs
public class ItemUsingController : MonoBehaviour
{
	void Shoot(Item item)
    {
        Vector3 mouseWorldPos = Camera.main.ScreenToWorldPoint(Input.mousePosition);
        mouseWorldPos.z = 0f;

        Vector3 direction = (mouseWorldPos - throwOrigin.position).normalized;
        Vector3 endPoint = throwOrigin.position + direction * maxDistance;

        // ▶️ 새로운 GameObject 생성
        GameObject lineObj = new GameObject("BulletTrail");
        LineRenderer lr = lineObj.AddComponent<LineRenderer>();

        lr.positionCount = 2;
        lr.SetPosition(0, throwOrigin.position);
        lr.SetPosition(1, endPoint);

        // ▶️ 머티리얼 설정 (투명도 지원하는 걸 써야 함)
        lr.material = new Material(Shader.Find("Sprites/Default")); // 또는 Unlit/Transparent
        lr.startWidth = 0.05f;
        lr.endWidth = 0.05f;

        Color trailColor = new Color(1f, 1f, 1f, 1f); // White, full alpha
        lr.startColor = trailColor;
        lr.endColor = trailColor;

        lr.sortingOrder = 10; // 필요 시

        StartCoroutine(FadeAndDestroy(lr, lineObj));
    }

    IEnumerator FadeAndDestroy(LineRenderer lr, GameObject obj)
    {
        float duration = 0.2f;
        float elapsed = 0f;

        while (elapsed < duration)
        {
            elapsed += Time.deltaTime;
            float alpha = Mathf.Lerp(1f, 0f, elapsed / duration);
            Color c = new Color(1f, 1f, 1f, alpha);
            lr.startColor = c;
            lr.endColor = c;

            yield return null;
        }

        Destroy(obj);
    }
}

 

+ 컴포넌트 구분을 생활화 하자

Player와 PlayerInventory 구분해버리기~~