void Update() { if (Unit.Task is BuildTask) { this.Start <BuildBehavior>().BuildTask = Unit.Task as BuildTask; } else { this.Stop <BuildBehavior>(); } if (Project != null && !Project.IsProject) { StopBuilding(); } NanolathingLineController.Line.gameObject.SetActive(IsProjectWithinReach); if (IsProjectWithinReach) { if (request == null) { request = Unit.Team.Stock.MakeRequest(Project.RequiredMaterials.Normalized() * Rate); } NanolathingLineController.NanolathingRate = Rate * request.Yield; NanolathingLineController.Target = Project.transform.position + new Vector3(0, 0.5f, 0); Project.Foundation.PutIn(request.Disbursement); } else if (request != null) { request.Revoke(); request = null; NanolathingLineController.NanolathingRate = 0; } }
protected override void OnDestroy() { base.OnDestroy(); request.Revoke(); }