Пример #1
0
 void DestroyDirectionIndicator()
 {
     if (directionIndicatorCurrent != null)
     {
         Destroy(directionIndicatorCurrent.gameObject);
         directionIndicatorCurrent = null;
     }
 }
Пример #2
0
    /// <summary>
    /// Spawns the direction indicator on the current selected SuperCube
    /// </summary>
    void SpawnDirectionIndicator()
    {
        if (directionIndicatorCurrent != null)
        {
            DestroyDirectionIndicator();
        }
        directionIndicatorCurrent = Instantiate(directionIndicatorPrefab, selectedManipulationScript.transform.position + selectedManipulationScript.DirectionToClosestCardinal(transform.up) * 3, transform.rotation).GetComponent <DirectionIndicatorScript>();
        selectedManipulationScript.DirectionToClosestCardinal(transform.up);

        directionIndicatorCurrent.GreySprites(!selectorReset);

        //finds arrow directions
        int     forwardRot      = 0;
        int     rightRot        = 0;
        Vector3 cardinalForward = selectedManipulationScript.DirectionToClosestCardinal(transform.forward);
        Vector3 cardinalRight   = selectedManipulationScript.DirectionToClosestCardinal(transform.right);

        if (selectedManipulationScript.CanRotateOnCardinalAxis(cardinalForward))
        {
            forwardRot = 1;
        }
        else if (selectedManipulationScript.CanMoveOnCardinalAxis(cardinalForward))
        {
            forwardRot = 2;
        }
        if (selectedManipulationScript.CanRotateOnCardinalAxis(cardinalRight))
        {
            rightRot = 1;
        }
        else if (selectedManipulationScript.CanMoveOnCardinalAxis(cardinalRight))
        {
            rightRot = 2;
        }

        directionIndicatorCurrent.SetArrows(rightRot, rightRot, forwardRot, forwardRot);
    }
Пример #3
0
        private IEnumerator CoroutineExpandDirectionIndicator(PointerEventData eventData, DirectionIndicatorScript directionScript)
        {
            yield return(new WaitForFixedUpdate());

            directionScript.OnPointerClick(eventData);
        }
Пример #4
0
        private IEnumerator CoroutineHandleConditionalInstructionDrop(PointerEventData eventData, DirectionIndicatorScript directionScript, ComparisonTypeIndicatorScript comparisonScript)
        {
            yield return(new WaitForFixedUpdate());

            yield return(CoroutineExpandDirectionIndicator(eventData, directionScript));

            yield return(new WaitUntil(() => directionScript.HasBeenSetManually == true));

            yield return(new WaitForSeconds(0.2f));

            ExpandComparisonTypeIndicator(eventData, comparisonScript);
        }