본문 바로가기
개발/Unity

Unity) 배경 이미지 반복 처리하기 ( 배경 타일링 )

by 테샤르 2024. 9. 23.

배경 이미지 반복 처리하기 ( 배경 타일링 )

 

간단하게 패턴 이미지를 기반으로 UV 좌표를 변경해서 반복되는 이미지를 만들고 매 시간 마다 이동해서 반복적인 패턴 이미지가 이동하는 코드이다.

 

< 배경에 사용할 Pattern 이미지 >

 

이미지는 간단하게 패턴이 어색하지 않도록 만들어 준다.

 

반응형

 

 <Texture 2D 속성>

Wrap Mode 를 Repeat으로 반복 처리해줘야 한다.

그러면 이렇게 반복 처리가 된다.

 

< 스크립트 코드 Inspector >

< RawImage 코드 >

using UnityEngine;
using UnityEngine.UI;

public class BackgroundPattern : MonoBehaviour
{
	[SerializeField]
	private RawImage rawImage; // RawImage 컴포넌트를 저장할 변수
	private Rect uvRect; // UV 좌표를 저장할 Rect 변수

	public float speedX = 1.0f; // X축 스크롤 속도
	public float speedY = 1.0f; // Y축 스크롤 속도

	void Start()
	{

		if (rawImage != null)
		{
			uvRect = rawImage.uvRect; // 현재 UV 좌표를 저장
		}
		else
		{
			Debug.LogError("RawImage  GameObject에 없습니다.");
		}
	}

	void Update()
	{
		if (rawImage != null)
		{
			// UV 좌표를 시간과 속도에 따라 증가시킴
			uvRect.x = (uvRect.x + Time.deltaTime * speedX) % 1f; // UV x 좌표를 0-1 사이로 유지
			uvRect.y = (uvRect.y + Time.deltaTime * speedY) % 1f; // UV y 좌표를 0-1 사이로 유지

			// 수정된 UV 좌표를 RawImage에 적용
			rawImage.uvRect = uvRect;
		}
	}
}

 

Image 컴포넌트로 하게되면 UV좌표를 직접 변경하는 쉐이더 코드를 작성해주면 된다.

 

Uniy RwawImage.uvRect  : [링크]

 

Unity - Scripting API: UI.RawImage.uvRect

You've told us this page needs code samples. If you'd like to help us further, you could provide a code sample, or tell us about what kind of code sample you'd like to see: You've told us there are code samples on this page which don't work. If you know ho

docs.unity3d.com

 

[Unity -Top Paid Package]

[Unity -Top Free Package]

[Unity -New Asset Package]

 

 

★☆☆☆☆

 

반응형

댓글