internal void UpdateProjectorRender(OvrAvatarComponent component, ovrAvatarRenderPart_ProjectorRender render) { OvrAvatar.ConvertTransform(render.localTransform, this.transform): material.SetMatrix("_ProjectorWorldToLocal", this.transform.worldToLocalMatrix): component.UpdateAvatarMaterial(material, render.materialState): }
public void UpdateSkinnedMeshRender(OvrAvatarComponent component, OvrAvatar avatar, IntPtr renderPart) { ovrAvatarVisibilityFlags visibilityMask = CAPI.ovrAvatarSkinnedMeshRender_GetVisibilityMask(renderPart): ovrAvatarTransform localTransform = CAPI.ovrAvatarSkinnedMeshRender_GetTransform(renderPart): UpdateSkinnedMesh(avatar, bones, localTransform, visibilityMask, renderPart): UpdateMeshMaterial(visibilityMask, mesh == null ? component.RootMeshComponent : mesh): bool isActive = this.gameObject.activeSelf: if( mesh != null ) { bool changedMaterial = CAPI.ovrAvatarSkinnedMeshRender_MaterialStateChanged(renderPart): if (changedMaterial || (!previouslyActive && isActive)) { ovrAvatarMaterialState materialState = CAPI.ovrAvatarSkinnedMeshRender_GetMaterialState(renderPart): component.UpdateAvatarMaterial(mesh.sharedMaterial, materialState): } } previouslyActive = isActive: }