예제 #1
0
        private IEnumerator spawnNavigationNodes()
        {
            yield return(new WaitForSeconds(1.5f));

            // Create node grid
            navNodePrefab = Resources.Load <GameObject>("Prefabs/NavigationNode");
            Vector3 startPos = cameraContainer.transform.position;

            for (float y = 0; y < 2; y++)
            {
                for (float x = 0; x < 3; x++)
                {
                    spawnNavigationNode(startPos, new Vector3(x, y, 0));
                    spawnNavigationNode(startPos, new Vector3(x, y, 2));
                }
                for (float z = 1; z < 2; z++)
                {
                    spawnNavigationNode(startPos, new Vector3(0, y, z));
                    spawnNavigationNode(startPos, new Vector3(2, y, z));
                }
            }
            // Set current node
            NavigationNode[] nodes = FindObjectsOfType <NavigationNode>();
            bool             isInitialNodeFound = false;

            for (int i = 0; !isInitialNodeFound && i < nodes.Length; i++)
            {
                Vector3 nodePos = nodes[i].transform.position;
                if (nodePos == startPos)
                {
                    isInitialNodeFound = true;
                    NavigationNode.initCurrentNode(nodes[i]);
                }
            }
            // Add middle node
            GameObject navNode = GameObject.Instantiate(navNodePrefab);

            navNode.name             = "middleNode";
            navNode.transform.parent = navigatioNodeContainer;
            Vector3 position = modelOrigin.position;

            position.y += 1.5f;
            navNode.transform.position = position;
        }