Cesium for Unity 1.15.2
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 Cesium3DTileset tileset = this.gameObject.GetComponent<Cesium3DTileset>();
174 if (tileset == null)
175 return;
176
177 // In case the material key changed, register the new key with the tileset.
178 tileset.UpdateOverlayMaterialKeys();
179
180 this.AddToTileset(tileset);
181 }
182
190 public void RemoveFromTileset()
191 {
192 Cesium3DTileset tileset = this.gameObject.GetComponent<Cesium3DTileset>();
193 if (tileset == null)
194 return;
195
196 this.RemoveFromTileset(tileset);
197 }
198
204 public void Refresh()
205 {
206 this.RemoveFromTileset();
207
208 if (this.enabled)
209 this.AddToTileset();
210 }
211
212 private void OnEnable()
213 {
214 this.AddToTileset();
215 }
216
217 private void OnDisable()
218 {
219 this.RemoveFromTileset();
220 }
221
222 private void OnValidate()
223 {
224 this.Refresh();
225 }
226
231 protected abstract void AddToTileset(Cesium3DTileset tileset);
232
237 protected abstract void RemoveFromTileset(Cesium3DTileset tileset);
238 }
239}
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.