private void InitializeTrackingLabel() { if (enableTrackingLabel) { float minShowDistance = TempGameValues.MinTrackingLabelShowDistance; _trackingLabel = TrackingWidgetFactory.Instance.CreateGuiTrackingLabel(_transform, TrackingWidgetFactory.LabelPlacement.AboveTarget, minShowDistance); } }
protected override void Cleanup() { base.Cleanup(); if (_trackingLabel != null) { Destroy(_trackingLabel.gameObject); _trackingLabel = null; } }
protected override void Cleanup() { base.Cleanup(); if (_velocityRay != null) { _velocityRay.Dispose(); _velocityRay = null; } if (_trackingLabel != null) { Destroy(_trackingLabel.gameObject); _trackingLabel = null; } }
private void InitializeTrackingLabel() { if (enableTrackingLabel) { if (_trackingLabel != null) { // there is an old tracking label for a previous tracking target, so remove it from components to disable before adding a new one disableComponentOnNotDiscernible = disableComponentOnNotDiscernible.Except(_trackingLabel); } float minShowDistance = TempGameValues.MinTrackingLabelShowDistance; string fleetName = Presenter.Model.Data.Name; _trackingLabel = TrackingWidgetFactory.Instance.CreateGuiTrackingLabel(TrackingTarget, TrackingWidgetFactory.LabelPlacement.AboveTarget, minShowDistance, Mathf.Infinity, fleetName); disableComponentOnNotDiscernible = disableComponentOnNotDiscernible.Union(new Component[] { _trackingLabel }); } }
protected override int EnableBasedOnDistanceToCamera(params bool[] conditions) { bool condition = conditions.All<bool>(c => c == true); int distanceToCamera = base.EnableBasedOnDistanceToCamera(condition); if (enableTrackingLabel) { // allows tester to enable while editor is playing _trackingLabel = _trackingLabel ?? InitializeTrackingLabel(); bool toShowTrackingLabel = false; if (condition) { distanceToCamera = distanceToCamera == Constants.Zero ? Target.DistanceToCameraInt() : distanceToCamera; // not really needed if (Utility.IsInRange(distanceToCamera, minTrackingLabelShowDistance, maxTrackingLabelShowDistance)) { toShowTrackingLabel = true; } } //D.Log("FleetTrackingLabel.IsShowing = {0}.", toShowTrackingLabel); _trackingLabel.IsShowing = toShowTrackingLabel; } return distanceToCamera; }
private void Cleanup() { if (_velocityRay != null) { _velocityRay.Dispose(); _velocityRay = null; } if (_circles != null) { _circles.Dispose(); _circles = null; } if (_trackingLabel != null) { Destroy(_trackingLabel.gameObject); _trackingLabel = null; } }
//protected override void Update() { // base.Update(); // KeepViewOverTarget(); //} //protected override void OccasionalUpdate() { // base.OccasionalUpdate(); // KeepColliderOverFleetIcon(); //} //private void KeepViewOverTarget() { // if (TrackingTarget != null) { // _transform.position = TrackingTarget.position; // _transform.rotation = TrackingTarget.rotation; // // Notes: _fleetIconPivotOffset is a worldspace offset to the top of the leadship collider and doesn't change with scale, position or rotation // // The approach below will also work if we want a viewport offset that is a constant percentage of the viewport // //Vector3 viewportOffsetLocation = Camera.main.WorldToViewportPoint(_leadShipTransform.position + _fleetIconPivotOffset); // //Vector3 worldOffsetLocation = Camera.main.ViewportToWorldPoint(viewportOffsetLocation + _fleetIconViewportOffset); // //_fleetIconTransform.localPosition = worldOffsetLocation - _leadShipTransform.position; // _fleetIconTransform.localPosition = _fleetIconPivotOffset; // } //} //private void KeepColliderOverFleetIcon() { // (_collider as BoxCollider).size = Vector3.Scale(_iconSize, _fleetIconScaler.Scale); // //D.Log("Fleet collider size now = {0}.", _collider.size); // Vector3[] iconWorldCorners = _fleetIconSprite.worldCorners; // Vector3 iconWorldCenter = iconWorldCorners[0] + (iconWorldCorners[2] - iconWorldCorners[0]) * 0.5F; // // convert icon's world position to the equivalent local position on the fleetCmd transform // (_collider as BoxCollider).center = _transform.InverseTransformPoint(iconWorldCenter); //} //private void InitializeTrackingLabel() { // if (enableTrackingLabel) { // float minShowDistance = TempGameValues.MinTrackingLabelShowDistance; // string fleetName = Presenter.Item.FleetName; // _trackingLabel = GuiTrackingLabelFactory.Instance.CreateGuiTrackingLabel(TrackingTarget, GuiTrackingLabelFactory.LabelPlacement.AboveTarget, minShowDistance, Mathf.Infinity, fleetName); // } //} private void InitializeTrackingLabel() { if (enableTrackingLabel) { float minShowDistance = TempGameValues.MinTrackingLabelShowDistance; string fleetName = Presenter.Item.PieceName; _trackingLabel = GuiTrackingLabelFactory.Instance.CreateGuiTrackingLabel(TrackingTarget, GuiTrackingLabelFactory.LabelPlacement.AboveTarget, minShowDistance, Mathf.Infinity, fleetName); } }