usdiSchema usdiFindOrCreateNode(Transform parent, usdi.Schema schema, ref bool created) { GameObject go = null; // find existing GameObject or create new one var name = usdi.usdiPrimGetNameS(schema); var child = parent.FindChild(name); if (child != null) { go = child.gameObject; created = false; } else if (go == null) { go = new GameObject(); go.name = name; go.GetComponent <Transform>().SetParent(parent); created = true; } // create USD node usdiSchema ret = usdiCreateNode(schema); ret.gameObject = go; return(ret); }
public virtual void usdiOnLoad() { m_primPath = usdi.usdiPrimGetPathS(m_schema); m_primTypeName = usdi.usdiPrimGetUsdTypeNameS(m_schema); m_master = m_stream.usdiFindSchema(usdi.usdiPrimGetMaster(m_schema)); usdiSyncVarinatSets(); if (m_goAssigned) { var c = usdiSetupSchemaComponent(); c.schema = this; } }
usdiSchema usdiCreateNode(usdi.Schema schema) { usdiSchema ret = null; if (ret == null) { var s = usdi.usdiAsPoints(schema); if (s) { ret = new usdiPoints(); } } if (ret == null) { var s = usdi.usdiAsMesh(schema); if (s) { ret = new usdiMesh(); } } if (ret == null) { var s = usdi.usdiAsCamera(schema); if (s) { ret = new usdiCamera(); } } if (ret == null) { // Xform must be latter because some schemas are subclass of Xform var s = usdi.usdiAsXform(schema); if (s) { ret = new usdiXform(); } } if (ret == null) { ret = new usdiSchema(); } ret.nativeSchemaPtr = schema; ret.stream = this; return(ret); }