///
/// Start is called before the first frame update
///
///
/// This is a pretty dirty solution to the problem of attaching the object to the desk. Do not use in production.
///
///
IEnumerator Start()
{
OVRSemanticClassification deskElement = null;
//loop until we find the desk element
while (deskElement == null)
{
yield return null;
// find all the objects with semantic classifications in the scene
var classifications = FindObjectsByType(FindObjectsInactive.Exclude, FindObjectsSortMode.None);
foreach (var classification in classifications)
{
// if the object is a table, set it as the desk element
// and break the loop
if (classification.Labels.Contains("TABLE"))
{
deskElement = classification;
break;
}
}
}
// wait for a bit before attaching the object to the desk, so it initializes properly
yield return new WaitForSeconds(0.33f);
//now parent the object to the desk
transform.SetParent(deskElement.transform, false);
}