Exemple #1
0
 private void Start()
 {
     controller = transform.parent.GetComponent <PatternPuzzleController>();
     if (controller == null)
     {
         controller = transform.parent.parent.GetComponent <PatternPuzzleController>();
     }
     m_Debug         = controller.m_Debug;
     m_DelayTime     = 0.2f;
     tmp_m_DelayTime = -1;
 }
    public void Reset()
    {
        Dictionary <Vector3, GameObject> newLevelObjectPositions = new Dictionary <Vector3, GameObject>();

        Debug.Log("Reset box position");
        foreach (KeyValuePair <Vector3, GameObject> objPositionPair in m_LevelObjectPositions)
        {
            /*
             * if (objPositionPair.Key.transform.parent != null)
             * {
             *  objPositionPair.Key.transform.parent = null;
             * }
             * PrefabUtility.RevertObjectOverride(objPositionPair.Key, InteractionMode.AutomatedAction);
             * objPositionPair.Key.transform.position = objPositionPair.Value;
             */
            Debug.Log("destroy box");
            Destroy(objPositionPair.Value);
            GameObject newBox = Instantiate(boxPrefab);
            newBox.SetActive(false);
            //newBox.transform.position = objPositionPair.Key + new Vector3(0,0.1f,0);
            StartCoroutine(WaitAndSetPosition(newBox, objPositionPair.Key));
            // Store new position of the box
            newLevelObjectPositions[objPositionPair.Key] = newBox;
        }
        // Replace the old dictionary
        m_LevelObjectPositions = newLevelObjectPositions;

        Debug.Log("Reset button");
        foreach (ButtonSwitch button in m_Buttons)
        {
            button.ResetButton();
        }

        foreach (GameObject patternPuzzle in m_LevelPuzzles)
        {
            PatternPuzzleController controller = patternPuzzle.GetComponent <PatternPuzzleController>();
            if (controller)
            {
                controller.Reset();
            }
        }
    }