Image image1 = image2 로 복사를 하게 되면 참조 값만 변경이 되게 된다.
즉, image1과 image2가 같은 image2를 가르키게 되는 것이다.
이렇게 하면 내부 값이 아니라 참조 값만 복사되기에 각 각의 객체로 독립적으로 존재하지 않게 된다.
그래서 각 항목을 복사해줘야지 원하는 값 전달이 이루어진다.
아래와 같다.
using UnityEngine;
using UnityEngine.UI;
public class ImageProcessor : MonoBehaviour
{
public Image image1;
public Image image2;
private void Start()
{
if (image1 == null || image2 == null)
{
Debug.LogError("Image components are not assigned!");
return;
}
CopyImageAttributes(image1, image2);
}
public void CopyImageAttributes(Image source, Image target)
{
if (source != null && target != null)
{
target.sprite = source.sprite;
target.rectTransform.sizeDelta = source.rectTransform.sizeDelta;
target.rectTransform.anchoredPosition = source.rectTransform.anchoredPosition;
target.rectTransform.localScale = source.rectTransform.localScale;
target.color = source.color;
}
else
{
Debug.LogError("Source or target image is null!");
}
}
}
보통은 이렇게 5개 정도 넘겨 주면 되는데 더 다양한 값도 넘겨 줄 수 있다.
using UnityEngine;
using UnityEngine.UI;
public class ImageProcessor : MonoBehaviour
{
public Image image1;
public Image image2;
private void Start()
{
if (image1 == null || image2 == null)
{
Debug.LogError("Image components are not assigned!");
return;
}
CopyImageAttributes(image1, image2);
}
public void CopyImageAttributes(Image source, Image target)
{
if (source != null && target != null)
{
target.sprite = source.sprite;
target.rectTransform.sizeDelta = source.rectTransform.sizeDelta;
target.rectTransform.anchoredPosition = source.rectTransform.anchoredPosition;
target.rectTransform.localScale = source.rectTransform.localScale;
target.color = source.color;
// 필요에 따라 추가적인 속성 복사
target.material = source.material;
target.type = source.type;
target.preserveAspect = source.preserveAspect;
target.fillCenter = source.fillCenter;
target.fillMethod = source.fillMethod;
target.fillAmount = source.fillAmount;
target.fillClockwise = source.fillClockwise;
target.fillOrigin = source.fillOrigin;
}
else
{
Debug.LogError("Source or target image is null!");
}
}
}
** 이 글은 Microsoft Copilot의 도움을 받아 제작되었습니다.
댓글 없음:
댓글 쓰기