public void SetTarget(Transform target) { this.target = target; state = LightTargetState.Targeting; if (!target) { state = LightTargetState.Free; return; } lerpTime = 0; origin = new Vector3(transform.position.x, transform.position.y, target.position.z); }
private void Update() { switch (state) { case LightTargetState.Following: transform.position = target.position; break; case LightTargetState.Targeting: if (lerpTime < 1) { transform.position = Vector3.Lerp(origin, target.position, lerpTime); lerpTime += Time.deltaTime; } else { transform.position = target.position; state = LightTargetState.Following; } break; } }
public void Free() { state = LightTargetState.Free; target = null; }