public void UploadInput(HEU_SessionBase session) { if (_nodeID == HEU_Defines.HEU_INVALID_NODE_ID) { Debug.LogErrorFormat("Input Node ID is invalid. Unable to upload input. Try recooking."); return; } if(_pendingInputObjectType != _inputObjectType) { ChangeInputType(session, _pendingInputObjectType); } if(_inputObjectType == InputObjectType.UNITY_MESH) { if(_inputObjects == null || _inputObjects.Count == 0) { DisconnectAndDestroyInputAssets(session); } else { DisconnectAndDestroyInputAssets(session); bool bResult = HEU_HAPIUtility.CreateInputNodeWithMultiObjects(session, _nodeID, ref _connectedNodeID, ref _inputObjects, ref _inputObjectsConnectedAssetIDs, _keepWorldTransform); if(!bResult) { DisconnectAndDestroyInputAssets(session); return; } ConnectInputNode(session); if(!UploadObjectMergeTransformType(session)) { Debug.LogErrorFormat("Failed to upload object merge transform type!"); return; } if (!UploadObjectMergePackGeometry(session)) { Debug.LogErrorFormat("Failed to upload object merge pack geometry value!"); return; } } } else if(_inputObjectType == InputObjectType.HDA) { // Connect HDA. Note only 1 connection supported. if(_inputAsset != null) { HEU_HoudiniAssetRoot inputAssetRoot = _inputAsset.GetComponent<HEU_HoudiniAssetRoot>(); if(inputAssetRoot == null || !inputAssetRoot._houdiniAsset.IsAssetValidInHoudini(session)) { Debug.LogWarningFormat("The input GameObject {0} is not a valid HDA asset.", _inputAsset.name); if (_inputAssetConnected) { DisconnectInputAssetActor(session); } } else { ConnectInputAssetActor(session); } } else if (_inputAssetConnected) { DisconnectInputAssetActor(session); } } //else if (_inputObjectType == InputObjectType.CURVE) //{ // TODO INPUT NODE - create new Curve SOP (add HEU_Curve here?) //} else { Debug.LogErrorFormat("Unsupported input type {0}. Unable to upload input.", _inputObjectType); } RequiresUpload = false; RequiresCook = true; ClearUICache(); }