在我的代码中,我正在我的场景中创建一个RawImage的克隆。问题是,我只想更改附加到克隆的材料的属性,但是每当我这样做时,它就会自动更改标准材料的属性。这样,原始RawImage材料的性能就发生了变化。我已经考虑过这些解决办法了:
beforehand.
发布于 2021-04-18 15:19:21
你的原始图像引用的是同样的材料。您需要创建它的一个新实例。我假设你是用手做的。我建议以编程的方式完成它--在实例化RawImage的新实例之后,您还为新映像创建了一个新的Material实例,它是原始图像的副本。
下面是一种扩展方法来实现这一点:
using UnityEngine;
using UnityEngine.UI;
public static class RawImageExtensions
{
public static RawImage CloneWithMaterial(this RawImage target)
{
RawImage newInstance = Object.Instantiate(target, target.transform.parent);
newInstance.material = new Material(newInstance.material);
return newInstance;
}
}用法示例:
using UnityEngine;
using UnityEngine.UI;
public class RawImageTest : MonoBehaviour
{
[SerializeField]
private RawImage target = null;
private void Start()
{
RawImage image = target.CloneWithMaterial();
image.material.color = Color.black;
image.transform.position = new Vector2(
image.transform.position.x,
image.transform.position.y - 50f);
}
}https://stackoverflow.com/questions/67149401
复制相似问题