void Start() { transform.localScale = new Vector3(0, 0, 1); phase = LifeCyclePhase.APPEARING; creationTime = Time.time; // Set up pulsing pulse = GetComponent <Pulsing>(); if (pulse != null) { pulse.enabled = false; } }
public override string GetStepParameters() { var parameters = new List <string>(); parameters.Add(GlobalId != null ? GlobalId.ToStepValue() : "$"); parameters.Add(OwnerHistory != null ? OwnerHistory.ToStepValue() : "$"); parameters.Add(Name != null ? Name.ToStepValue() : "$"); parameters.Add(Description != null ? Description.ToStepValue() : "$"); parameters.Add(ObjectType != null ? ObjectType.ToStepValue() : "$"); parameters.Add(Identification != null ? Identification.ToStepValue() : "$"); parameters.Add(LifeCyclePhase != null ? LifeCyclePhase.ToStepValue() : "$"); parameters.Add(PredefinedType.ToStepValue()); return(string.Join(", ", parameters.ToArray())); }
void Update() { if (phase == LifeCyclePhase.ACTIVE) { float timeAlive = Time.time - creationTime; if (GameManager.instance.playMode != GameManager.PlayMode.TUTORIAL && timeAlive > minLifetime && Random.value < (timeAlive - minLifetime) / lifetimeVariability) { // Begin the disappearing phase phase = LifeCyclePhase.DISAPPEARING; if (pulse != null) { pulse.enabled = false; } if (listener != null) { listener.OnLifecycleDisappear(); } } else if (listener != null) { listener.ActiveUpdate(); } } else if (phase == LifeCyclePhase.APPEARING) { // Appear if (transform.localScale.x < staticScale) { Vector3 scale = transform.localScale; scale.x += appearRate; scale.y += appearRate; transform.localScale = scale; } else { // Appearing phase has completed phase = LifeCyclePhase.ACTIVE; if (pulse != null) { pulse.enabled = true; } if (listener != null) { listener.OnLifecycleActive(); } } } else { // Disappear if (transform.localScale.x > 0) { Vector3 scale = transform.localScale; scale.x -= disappearRate; scale.y -= disappearRate; transform.localScale = scale; } else { Destroy(gameObject); } } }