void aicontroller_VicinityChanged(CameraBasedAction.CameraVisibilityChangeEventArgs e) { switch (e.Frustum) { case CameraBasedAction.CameraVisibilityChangeEventArgs.FrustumState.Enter: { if (e.ObjectInVicinity) { GetComponent <Renderer>().enabled = true; } else { GetComponent <Renderer>().enabled = false; } break; } case CameraBasedAction.CameraVisibilityChangeEventArgs.FrustumState.StayInside: { if (e.ObjectInVicinity) { GetComponent <Renderer>().enabled = true; } else { GetComponent <Renderer>().enabled = false; } break; } case CameraBasedAction.CameraVisibilityChangeEventArgs.FrustumState.Leave: { GetComponent <Renderer>().enabled = false; break; } } }
void cameraAction_VicinityChanged(CameraBasedAction.CameraVisibilityChangeEventArgs e) { if (Visible) { switch (e.Frustum) { case CameraBasedAction.CameraVisibilityChangeEventArgs.FrustumState.Enter: { if (e.ObjectInVicinity) { LowPoly.SetActive(false); HighPoly.SetActive(true); HighPoly.transform.position = transform.position; HighPoly.transform.rotation = transform.rotation; highpolyAnimator.speed = animationFunction(this); if (onUpdateFunction != null) { onUpdateFunction(this); } } else { HighPoly.SetActive(false); LowPoly.SetActive(true); LowPoly.transform.position = transform.position; LowPoly.transform.rotation = transform.rotation; lowpolyAnimator.speed = animationFunction(this); if (onUpdateFunction != null) { onUpdateFunction(this); } } break; } case CameraBasedAction.CameraVisibilityChangeEventArgs.FrustumState.Leave: { LowPoly.SetActive(false); HighPoly.SetActive(false); break; } case CameraBasedAction.CameraVisibilityChangeEventArgs.FrustumState.StayInside: { if (e.ObjectInVicinity) { LowPoly.SetActive(false); HighPoly.SetActive(true); HighPoly.transform.position = transform.position; HighPoly.transform.rotation = transform.rotation; highpolyAnimator.speed = animationFunction(this); if (onUpdateFunction != null) { onUpdateFunction(this); } } else { HighPoly.SetActive(false); LowPoly.SetActive(true); LowPoly.transform.position = transform.position; LowPoly.transform.rotation = transform.rotation; lowpolyAnimator.speed = animationFunction(this); if (onUpdateFunction != null) { onUpdateFunction(this); } } break; } default: { break; } } } else // Object is not active { LowPoly.SetActive(false); HighPoly.SetActive(false); } }