public void RepositionTo(DieFinalConfiguration config) { _targetConfigurationStartTime = Time.frameCount; _targetPosition = new Vector3(config.X, config.Y, config.Z); _targetRotation = new Quaternion(config.RX, config.RY, config.RZ, config.RW); _sourcePosition = transform.position; _sourceRotation = transform.rotation; }
private (int[] Values, DieFinalConfiguration[] Positions) GetDiceValues(GameObject[] dice) { var values = new List <int>(); var finalPositions = new DieFinalConfiguration[dice.Length]; var i = 0; foreach (var die in dice) { var dieScript = die.GetComponent <DieScript>(); if (dieScript.IsPrimary) { // only use the primary dice to compute values // secondary dice will be used by their primaries values.Add(dieScript.GetValue()); } if (_throwConfiguration.ReturnFinalConfiguration) { var dfc = new DieFinalConfiguration { Id = dieScript.Id, X = die.transform.position.x, Y = die.transform.position.y, Z = die.transform.position.z, RX = die.transform.rotation.x, RY = die.transform.rotation.y, RZ = die.transform.rotation.z, RW = die.transform.rotation.w }; finalPositions[i] = dfc; } ++i; } return(values.ToArray(), finalPositions); }