C# 在运行时更改增强对象(AR核心)的颜色
我正在使用AR Core SDK中的图像目标检测示例。我想在运行时通过脚本更改对象的颜色。将材质附着到该对象C# 在运行时更改增强对象(AR核心)的颜色,c#,android,unity3d,arcore,C#,Android,Unity3d,Arcore,我正在使用AR Core SDK中的图像目标检测示例。我想在运行时通过脚本更改对象的颜色。将材质附着到该对象 // Create an anchor to ensure that ARCore keeps tracking this augmented image. Anchor anchor = image.CreateAnchor(image.CenterPose); visualizer = (AugmentedImageVisualizer)Instantiate( AugmentedI
// Create an anchor to ensure that ARCore keeps tracking this augmented image.
Anchor anchor = image.CreateAnchor(image.CenterPose);
visualizer = (AugmentedImageVisualizer)Instantiate(
AugmentedImageVisualizerPrefab, anchor.transform);
visualizer.Image = image;
m_Visualizers.Add(image.DatabaseIndex, visualizer);
Renderer rend = visualizer.GetComponent<Renderer>();
rend.sharedMaterial.shader = Shader.Find("BaseColor");
Color red = new Color(255,0,0);
rend.sharedMaterial.SetColor("_Color", red);
//创建锚定以确保ARCore始终跟踪此增强图像。
锚点锚点=image.CreateAnchor(image.CenterPose);
可视化工具=(增强图像可视化工具)实例化(
augmentedimagerprefab,anchor.transform);
可视化工具。图像=图像;
m_Visualizers.Add(image.DatabaseIndex,visualizer);
render rend=visualizer.GetComponent();
rend.sharedMaterial.shader=shader.Find(“BaseColor”);
红色=新颜色(255,0,0);
rend.sharedMaterial.SetColor(“U颜色”,红色);
这是我当前的代码,在从不同的答案中得到提示后,我试图实现它,但似乎没有任何效果。我可以通过创建具有相应颜色的材质并为AR对象提供这种类型的组件来实现(显然,您需要在inspector中将引用指定给
渲染器
和颜色材质
):
如果我们尝试使用的模型有这么多子项目,它是一台机器,有很多零件,一半零件使用相同的材料颜色,有没有办法改变应用于所有这些零件的矩阵的颜色,所有零件的颜色都改变了?看起来有可能:;还没有测试过吗?是的,没有工作。它适用于普通对象,但不适用于增强对象。尽管如此,您仍然可以为您需要的每种颜色创建材质。您对此还有任何疑问吗?否则,请将我的答案标记为解决方案?
using UnityEngine;
public class ARObjectController : MonoBehaviour
{
public Renderer renderer;
public Material colorMaterial;
public SetMaterial()
{
renderer.material = colorMaterial;
}
}