我正在通过Unity3D版本2017.4.16f1为Microsoft Hololens创建一个项目。我已经将HoloToolkit添加到我的项目中,并且正在使用其默认的SpatialMapping预制件。我也正在使用资产商店中的HololensShaderPack,并在SpatialMapping预制件上使用其提供的着色器之一。
我的应用程序涉及点击对象/表面以从中获取颜色,并将空间网格材料的颜色更改为您从该表面“偷”的颜色。攻丝效果很好,而且颜色也不错。我要做的就是访问SpatialMappingManager脚本中找到的材料。
我的问题是我不确定如何访问部分类的成员,尤其是如果该部分类是单例的话。我对C#的这方面不太熟悉,并试图在线查找解决方案。
SpatialMappingManager脚本的定义如下,省略了不相关的部分:
library(splitstackshape)
na.omit(cSplit(df1, c("ligandId", "ligandName"), sep=",", "long"))
在其他脚本中,我正在尝试这样做:
namespace HoloToolkit.Unity.SpatialMapping
{
[RequireComponent(typeof(SpatialMappingObserver))]
public partial class SpatialMappingManager : Singleton<SpatialMappingManager>
{
[Tooltip("The material to use for rendering spatial mapping data.")]
[SerializeField]
private Material surfaceMaterial;
public Material SurfaceMaterial
{
get
{
return surfaceMaterial;
}
set
{
if (value != surfaceMaterial)
{
surfaceMaterial = value;
SetSurfaceMaterial(surfaceMaterial);
}
}
}
public void SetSurfaceMaterial(Material setSurfaceMaterial)
{
SurfaceMaterial = setSurfaceMaterial;
if (DrawVisualMeshes)
{
foreach (MeshRenderer sourceRenderer in Source.GetMeshRenderers())
{
if (sourceRenderer != null)
{
sourceRenderer.sharedMaterial = setSurfaceMaterial;
}
}
}
}
}
}
但是,它不允许我访问部分类的这些成员变量/函数。我也不认为是因为它是单身人士,还是我无法访问这样的部分类的成员?我还能怎么做呢?