我正在尝试根据我创建的blendShape字典创建一个ARKit Mesh(在Unity脚本中)。基本上,我想获得一个网格并修改字典中的一个值,然后使用这个新字典创建几何体。
我在ARFaceGeometry文档中找到了方法init,但我不明白究竟如何调用它。
借助Unity blog上的面部跟踪示例,我提出了类似的代码:
using UnityEngine;
using System.Collections;
using UnityEngine.XR.iOS;
using System.Collections.Generic;
public class RetrieveBlendShapesARKit : MonoBehaviour
{
private UnityARSessionNativeInterface m_session;
Dictionary<string, float> currentBlendShapes;
// Use this for initialization
void Start()
{
currentBlendShapes["eyeBlink_L"] = 1.0f;
Debug.Log("---------------Get ARKit Mesh Start-------------------");
m_session = UnityARSessionNativeInterface.GetARSessionNativeInterface();
ARKitFaceTrackingConfiguration config = new ARKitFaceTrackingConfiguration();
config.alignment = UnityARAlignment.UnityARAlignmentGravity;
config.enableLightEstimation = true;
if (config.IsSupported)
{
m_session.RunWithConfig(config);
UnityARSessionNativeInterface.ARFaceAnchorAddedEvent += FaceAdded;
UnityARSessionNativeInterface.ARFaceAnchorUpdatedEvent += FaceUpdated;
}
}
void FaceAdded(ARFaceAnchor anchorData)
{
anchorData.faceGeometry.init(currentBlendShapes);
}
void FaceUpdated(ARFaceAnchor anchorData)
{
anchorData.blendShapes = currentBlendShapes;
}
// Update is called once per frame
void Update()
{
}
}
我收到错误ARFaceGeometry does not contain a definition of init
,我也收到一个错误,我无法指定blendShapes,因为它是只读的(我只想到尝试直接分配,但没有工作)。
我很感激使用此init
方法或任何其他方式在iPhone上使用Unity自定义blendShape字典在iPhone上创建ARKit网格时的任何帮助。
谢谢!