protected bool CreateMeshEffect(UEffectMeshParam _effectParam) { UEffectNode node = _effectParam.AttachParent.GetComponent <UEffectNode>(); if (node == null) { node = _effectParam.AttachParent.gameObject.AddComponent <UEffectNode>(); node.EffectType = UEffectType.UET_EffectMesh; } var nodeMesh = node.To <UEffectNodeData_Mesh>(); if (node && nodeMesh != null && _effectParam.MeshObjectList.Count > 0) { node.UnRegisterEffectNode(); nodeMesh.MeshRTTSize = _effectParam.RTTSize; //node.GetRectTransform.sizeDelta = _effectParam.DisplaySize; nodeMesh.EffectMeshCamera.AttachObject = _effectParam.MeshCamrea.AttachObject; nodeMesh.EffectMeshCamera.IsAttachToObject = _effectParam.MeshCamrea.IsAttachToObject; nodeMesh.EffectMeshCamera.FOV = _effectParam.MeshCamrea.FOV; nodeMesh.EffectMeshCamera.PositionOffset = _effectParam.MeshCamrea.PositionOffset; nodeMesh.EffectMeshCamera.Rotation = _effectParam.MeshCamrea.Rotation; nodeMesh.EffectMeshObjectList.AddRange(_effectParam.MeshObjectList); node.RegisterEffectNode(); _effectParam.MeshCamrea.Camera = nodeMesh.EffectMeshCamera.Camera; _effectParam.MeshRenderNode = node; } return(true); }
protected bool DestroyMeshEffect(UEffectMeshParam _effectParam) { UEffectNode node; if (_effectParam.MeshRenderNode != null) { node = _effectParam.MeshRenderNode; } else { node = _effectParam.AttachParent.GetComponent <UEffectNode>(); } if (node == null) { return(true); } node.UnRegisterEffectNode(); _effectParam.AttachParent.gameObject.RemoveComponent <UEffectNode>(); return(true); }