void Start() { satelliteRb = GetComponent <Rigidbody2D>(); dockingRangeChecker = gameObject.GetComponentInChildren <DockingRangeChecker>(); shipController = GameObject.FindObjectOfType <ShipController>(); gravityIndicator = GameObject.FindObjectOfType <GravityIndicator>(); scoreTracker = GameObject.FindObjectOfType <ScoreTracker>(); inSatelliteAtmos = false; isDocked = false; refuelComplete = false; }
public void UpdateIndicator(GravityIndicator indicator, GravityField field) { Vector2 indicatorGravity = field.GetGravityAtPosition(indicator.transform.position); indicator.GravityForce = indicatorGravity; float angle = Vector2.SignedAngle(indicator.transform.right, indicatorGravity); indicator.transform.Rotate(0.0f, 0.0f, angle); float strengthT = Mathf.InverseLerp(minFieldStrength, maxFieldStrength, indicatorGravity.magnitude); float arrowLength = Mathf.Lerp(minArrowLength, maxArrowLength, strengthT); indicator.SetArrowLength(arrowLength); }
public void PlaceArrows() { indicators.Clear(); for (int x = 0; x < gridWidth; x++) { for (int y = 0; y < gridHeight; y++) { float indicatorX = startX + xSpacing * x; float indicatorY = startY + ySpacing * y; Vector2 indicatorPosition = new Vector2(indicatorX, indicatorY); GravityIndicator newIndicator = Instantiate( original: indicatorPrefab, position: indicatorPosition, rotation: Quaternion.identity, parent: indicatorParent); indicators.Add(newIndicator); } } }