Cesium for Unity 1.19.0
Loading...
Searching...
No Matches
CesiumRasterOverlay.cs
Go to the documentation of this file.
1using System;
2using UnityEngine;
3
4namespace CesiumForUnity
5{
10 [ExecuteInEditMode]
11 public abstract class CesiumRasterOverlay : MonoBehaviour
12 {
19
23 public static event
25
26 internal static void BroadcastCesiumRasterOverlayLoadFailure(
28 {
30 {
32 }
33 }
34
35 [SerializeField]
36 private string _materialKey = "0";
37
53 public string materialKey
54 {
55 get => this._materialKey;
56 set
57 {
58 this._materialKey = value;
59 this.Refresh();
60 }
61 }
62
63 [SerializeField]
64 private bool _showCreditsOnScreen = false;
65
71 {
72 get => this._showCreditsOnScreen;
73 set
74 {
75 this._showCreditsOnScreen = value;
76 this.Refresh();
77 }
78 }
79
80 [SerializeField]
81 private float _maximumScreenSpaceError = 2.0f;
82
93 {
94 get => this._maximumScreenSpaceError;
95 set
96 {
97 this._maximumScreenSpaceError = value;
98 this.Refresh();
99 }
100 }
101
102 [SerializeField]
103 private int _maximumTextureSize = 2048;
104
114 {
115 get => this._maximumTextureSize;
116 set
117 {
118 this._maximumTextureSize = value;
119 this.Refresh();
120 }
121 }
122
123 [SerializeField]
124 private int _maximumSimultaneousTileLoads = 20;
125
131 {
132 get => this._maximumSimultaneousTileLoads;
133 set
134 {
135 this._maximumSimultaneousTileLoads = value;
136 this.Refresh();
137 }
138 }
139
140 [SerializeField]
141 private long _subTileCacheBytes = 16 * 1024 * 1024;
142
155 {
156 get => this._subTileCacheBytes;
157 set
158 {
159 this._subTileCacheBytes = value;
160 this.Refresh();
161 }
162 }
163
171 public void AddToTileset()
172 {
173 if (!this.isActiveAndEnabled)
174 return;
175
176 Cesium3DTileset tileset = this.gameObject.GetComponent<Cesium3DTileset>();
177 if (tileset == null)
178 return;
179
180 // In case the material key changed, register the new key with the tileset.
181 tileset.UpdateOverlayMaterialKeys();
182
183 this.AddToTileset(tileset);
184 }
185
193 public void RemoveFromTileset()
194 {
195 Cesium3DTileset tileset = this.gameObject.GetComponent<Cesium3DTileset>();
196 if (tileset == null)
197 return;
198
199 this.RemoveFromTileset(tileset);
200 }
201
207 public void Refresh()
208 {
209 this.RemoveFromTileset();
210 this.AddToTileset();
211 }
212
213 private void OnEnable()
214 {
215 this.AddToTileset();
216 }
217
218 private void OnDisable()
219 {
220 this.RemoveFromTileset();
221 }
222
223 private void OnValidate()
224 {
225 this.Refresh();
226 }
227
232 protected abstract void AddToTileset(Cesium3DTileset tileset);
233
238 protected abstract void RemoveFromTileset(Cesium3DTileset tileset);
239 }
240}
A tileset in the 3D Tiles format.
A pyramid of 2D images - sometimes terabytes or more in size - that can be draped over a Cesium3DTile...
int maximumTextureSize
The maximum texel size of raster overlay textures, in either direction.
string materialKey
The key to use to match this overlay to the corresponding parameters in the tileset's material.
bool showCreditsOnScreen
Whether or not to force this raster overlay's credits to be shown on the main screen.
int maximumSimultaneousTileLoads
The maximum number of overlay tiles that may simultaneously be in the process of loading.
long subTileCacheBytes
The maximum number of bytes to use to cache sub-tiles in memory.
void Refresh()
Refreshes this overlay by calling RemoveFromTileset followed by AddToTileset.
void RemoveFromTileset(Cesium3DTileset tileset)
When implemented in a derived class, removes the raster overlay from the given tileset.
float maximumScreenSpaceError
The maximum number of pixels of error when rendering this overlay.
void RemoveFromTileset()
Removes this raster overlay from the Cesium3DTileset on the same game object.
void AddToTileset(Cesium3DTileset tileset)
When implemented in a derived class, adds the raster overlay to the given tileset.
delegate void RasterOverlayLoadFailureDelegate(CesiumRasterOverlayLoadFailureDetails details)
Encapsulates a method that receives details of a raster overlay load failure.
void AddToTileset()
Adds this raster overlay to the Cesium3DTileset on the same game object.
static RasterOverlayLoadFailureDelegate OnCesiumRasterOverlayLoadFailure
An event that is raised when the raster overlay encounters an error that prevents it from loading.