c# - 在运行时更改增强对象(AR 核心)的颜色
问题描述
我正在使用 AR Core SDK 中的图像目标检测示例。我想通过脚本在运行时更改对象的颜色。一种材料附加到该对象。
// 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);
这是我当前的代码,我在从不同的答案中得到提示后尝试实现,但似乎没有任何效果。
解决方案
我可以通过创建具有相应颜色的材质并为 AR 对象提供这种类型的组件来做到这一点(显然,您需要将引用分配给检查器renderer
和colorMaterial
在检查器中):
using UnityEngine;
public class ARObjectController : MonoBehaviour
{
public Renderer renderer;
public Material colorMaterial;
public SetMaterial()
{
renderer.material = colorMaterial;
}
}
推荐阅读
- javascript - 我想让一个 html 元素动画成为一个 javascript 变量,这样我就可以向它添加物理
- tensorflow - Tensorflow:如何加载 SavedModel 对象并继续训练?
- async-await - Flutter 在 main 中读取共享首选项,然后决定哪个启动页面?
- c# - 在哪里可以找到 DocuSign 电子签名 REST API 的最新 Swagger 定义?
- javascript - 将数组拆分为具有一定长度的 n 个数组
- windows - 如何通过 Docker 访问我电脑上的文件
- javascript - Javascript 中的 ScrollTop 和 ScrollLeft
- swift - 之前写的代码,开发者做了一个返回块的静态var?
- java - 如何在我的代码中 Junit 测试 try catch 块
- html - mat-expansion-panel 删除边框