protected virtual void OnEnable() { cachedObject = GetComponent <SgtFloatingObject>(); cachedObject.OnSpawn += Generate; cachedObject.OnDistance += SetDistance; }
public void SetDistance(double distance) { if (cachedObjectSet == false) { cachedObject = GetComponent <SgtFloatingObject>(); cachedObjectSet = true; } // Assume these exist to speed things up //if (Steps != null) { for (var i = Steps.Count - 1; i >= 0; i--) { var step = Steps[i]; if (distance >= step.DistanceMin && distance < step.DistanceMax) { if (step.Scale != cachedObject.Scale) { ApplyScale(step.Scale); } break; } } } }
private void ApplyScale(long newScale) { var floatingCamera = default(SgtFloatingCamera); if (SgtFloatingCamera.TryGetCamera(newScale, ref floatingCamera) == true) { ApplyLayer(transform, floatingCamera.gameObject.layer); if (cachedObjectSet == false) { cachedObject = GetComponent <SgtFloatingObject>(); cachedObjectSet = true; } cachedObject.UpdatePosition(floatingCamera); cachedObject.Scale = newScale; //cachedObject.UpdateScale(); } if (cachedObjectSet == false) { cachedObject = GetComponent <SgtFloatingObject>(); cachedObjectSet = true; } }
protected override void OnEnable() { base.OnEnable(); Camera.onPreCull += PreCull; SgtFloatingCamera.OnPositionChanged += FloatingCameraPositionChanged; cachedObject = GetComponent <SgtFloatingObject>(); }
protected virtual void OnEnable() { if (UseFloatingObject == true) { cachedFloatingObject = GetComponent <SgtFloatingObject>(); cachedFloatingObject.OnSpawn += SpawnSeed; } }
protected virtual void OnDisable() { cachedObject.OnDistance -= UpdateDistance; if (instance != null) { SgtHelper.Destroy(instance.gameObject); instance = null; } }
protected virtual void OnEnable() { if (UseFloatingObject == true) { cachedFloatingObject = GetComponent <SgtFloatingObject>(); cachedFloatingObject.OnSpawn += SpawnSeed; } else { Generate(); } cachedTransform = GetComponent <Transform>(); }
private void UpdateDistance(double distance) { #if UNITY_EDITOR if (Application.isPlaying == false && EnableInEditor == false) { return; } #endif if (distance >= DistanceMin && distance < DistanceMax) { if (instance == null) { // Store old values and override var oldPoint = Prefab.Point; Prefab.Point = cachedObject.Point; // Spawn instance = Instantiate(Prefab, SgtFloatingRoot.Root); // Revert values Prefab.Point = oldPoint; instance.UpdatePosition(); // Invoke spawn if (instance.OnSpawn != null) { instance.OnSpawn.Invoke(cachedObject.Seed); } } if (instance.OnDistance != null) { instance.OnDistance.Invoke(distance); } } else { if (instance != null) { SgtHelper.Destroy(instance.gameObject); instance = null; } } }
protected virtual void OnEnable() { cachedFloatingObject = GetComponent <SgtFloatingObject>(); cachedFloatingObject.OnDistance += HandleDistance; }