Cesium for Unity v1.8.0
Cesium for Unity works on Windows (x86-64), macOS (x86-64 and Apple Silicon), Android (ARM64 and x86-64), iOS, and Universal Windows Platform (ARM64 and x86-64).
π Get Started
- Download Cesium for Unity Samples.
- Extract the
.zip
file into a suitable location on your computer. - If you have Unity Hub installed, click the "Open" button under the "Projects" tab. Otherwise, open the Unity Editor directly and select "Open Project". Then, point it to the extracted directory. Unity will load the project and also download Cesium for Unity using the Package Manager.
- In the Asset Browser, select and load
Assets -> Scenes -> 01_CesiumWorld
. You can also select other scenes as you browse and explore the samples.
Or, to learn how to add it to your own project, see the Cesium for Unity Quickstart.
Have questions? Ask them on the community forum.
π Change Log
Breaking Changes π£
- Feature IDs and metadata are now parsed through the
EXT_mesh_features
andEXT_structural_metadata
extensions respectively. Models withEXT_feature_metadata
will still be parsed, but their metadata will no longer be accessible. CesiumDefaultTilesetMaterial
andCesiumUnlitTilesetMaterial
have had their overlay-related parameters renamed. For instance,_overlay0TextureCoordinateIndex
has now become_overlayTextureCoordinateIndex_0
. Custom materials that relied on the previous naming scheme may break.
Additions π
- Added
CesiumCartographicPolygon
andCesiumPolygonRasterOverlay
, which together can be used to clip out polygonal areas of aCesium3DTileset
. These new classes are only available in Unity 2022.2+ because they require Unity's Splines package. - Added
CesiumFeatureIdSet
, which represents a feature ID set inEXT_mesh_features
. - Added
CesiumFeatureIdAttribute
andCesiumFeatureIdTexture
, which derive fromCesiumFeatureIdSet
and respectively represent a feature ID attribute and feature ID texture inEXT_mesh_features
. - Added
CesiumPrimitiveFeatures
, a component that provides access to theEXT_mesh_features
on a glTF primitive when it is loaded byCesium3DTileset
. - Added
CesiumPropertyTableProperty
, which represents a property table property inEXT_structural_metadata
and can be used to retrieve metadata. - Added
CesiumPropertyTable
, which represents a property table inEXT_structural_metadata
. - Added
CesiumModelMetadata
, a component that provides access to theEXT_structural_metadata
on a glTF model when it is loaded byCesium3DTileset
. - Added
CesiumMetadataValue
, which can hold a metadata value fromEXT_structural_metadata
while abstracting away its type. - Added a
distance
property toCesiumOriginShift
, which specifies the maximum allowed distance from the current origin before it is shifted. - Added support for the
KHR_texture_transform
glTF extension - including rotation - inbaseColorTexture
,metallicRoughnessTexture
,emissiveTexture
,normalTexture
, andocclusionTexture
. The transformation is now applied on the GPU via nodes in the Material, rather than on the CPU by directly modifying texture coordinates. - Added
materialKey
toCesiumRasterOverlay
, which matches the overlay to its corresponding parameters in the tileset's material. This allows for explicit ordering of raster overlays and overlay-specific effects. CesiumCameraController
can now accept custom input actions that override the default inputs.
Fixes π§
- Removed the "Universal Additional Camera Data" script from DynamicCamera, as it shows up as a missing script in other render pipelines.
- Fixed a bug where adding a
CesiumSubScene
as the child of an existingCesiumGeoreference
in editor would cause the parentCesiumGeoreference
to have its coordinates reset to the default. - Fixed the "DynamicCamera is not nested inside a game object with a CesiumGeoreference" warning when adding a new DynamicCamera in the editor.
- Fixed support for loading textures with less than four channels.
- Fixed "Destroying assets is not permitted to avoid data loss" error when using a custom opaque material with texture assets on a
Cesium3DTileset
. - Fixed jump at the end of the flight path in
CesiumFlyToController
.
Deprecated β³
CesiumMetadata
has been deprecated. Instead, retrieve theCesiumModelMetadata
component attached to a tile game object in order to access its glTF metadata.CesiumFeature
has been deprecated. Instead, retrieve feature IDs from theCesiumPrimitiveFeatures
component attached to a primitive game object in order to access its glTF features. Feature IDs can be used to retrieve metadata from theCesiumModelMetadata
attached to its parent.flyToGranularityDegrees
inCesiumFlyToController
has been deprecated.CesiumFlyToController
no longer works using keypoints, so this value is unnecessary.
In addition to the above, this release updates cesium-native from v0.27.4 to v0.33.0. See the changelog for a complete list of changes in cesium-native.