コード例 #1
0
ファイル: SphereGridTest.cs プロジェクト: Enanyy/SphereGrid
    // Use this for initialization
    void Awake()
    {
        mainCamera = Camera.main;

        click = GameObject.CreatePrimitive(PrimitiveType.Sphere);
        click.transform.SetParent(transform);
        click.GetComponent <SphereCollider>().enabled = false;

        grid = new SphereGrid();

        string path = Application.dataPath + "/spheregrid.txt";

        if (File.Exists(path))
        {
            string text = File.ReadAllText(path);
            grid.ParseTilesType(text);
        }

        grid.Init(SphereRadius, SphereDetail);
        grid.SetRoot(transform);
#if UNITY_EDITOR
        for (int i = 0; i < grid.tiles.Count; ++i)
        {
            grid.tiles[i].SetDefaultColor();
        }
#endif
    }
コード例 #2
0
    public static SphereGrid CreateFromXml(string xml)
    {
        SphereGrid grid = new SphereGrid();

        grid.FromXml(xml);
        return(grid);
    }
コード例 #3
0
ファイル: SphereGridEditor.cs プロジェクト: Enanyy/SphereGrid
    // Use this for initialization
    void Awake()
    {
        rotate = GetComponent <SphereRotate>();
        if (rotate == null)
        {
            rotate = gameObject.AddComponent <SphereRotate>();
        }

        click = GameObject.CreatePrimitive(PrimitiveType.Sphere);
        click.GetComponent <SphereCollider>().enabled = false;

        grid = new SphereGrid();

        grid.Init(SphereRadius, SphereDetail);
        grid.SetRoot(transform);

        string path = Application.dataPath + "/spheregrid.txt";

        if (File.Exists(path))
        {
            string text = File.ReadAllText(path);
            grid.ParseTilesType(text);
        }

        for (int i = 0; i < grid.tiles.Count; ++i)
        {
            grid.tiles[i].SetDefaultColor();
        }
    }
コード例 #4
0
ファイル: SphereEntity.cs プロジェクト: Enanyy/SphereGrid
    public void MoveTo(Tile tile)
    {
        grid = tile.grid;
        if (current == null)
        {
            paths.Add(tile);
        }
        else
        {
#if UNITY_EDITOR
            var it = paths.GetEnumerator();
            while (it.MoveNext())
            {
                it.Current.SetDefaultColor();
            }
#endif
            grid.FindPath(ref paths, current, tile, (t) => { return(grid.tilesType.ContainsKey(t.index) && grid.tilesType[t.index] == TileType.Free); });
#if UNITY_EDITOR
            it = paths.GetEnumerator();
            while (it.MoveNext())
            {
                it.Current.SetColor(Color.blue);
            }
#endif
        }
    }
コード例 #5
0
        private void ButtonSelectNode_Click(object sender, RoutedEventArgs e)
        {
            var selectedNode = SphereGrid.GetSelectedNode();

            _currentNode = selectedNode;

            Refresh();
        }
コード例 #6
0
        private void ComboNodeType_OnSelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            if (_refreshing)
            {
                return;
            }

            SphereGrid.SetNodeType(_currentNode, SphereGrid.NodeTypes[ComboNodeType.SelectedIndex].ID);
        }
コード例 #7
0
ファイル: GridAgent.cs プロジェクト: afeike01/PlanetRTS
 public void Initialize(SphereGrid newGrid, LevelManager newManager,Node newCurrent)
 {
     manager = newManager;
     rB = GetComponent<Rigidbody>();
     tRenderer = GetComponent<TrailRenderer>();
     navUpdateCounter = Random.Range(50, 150);
     SetNavigationGrid(newGrid);
     planet = newGrid.gameObject;
     SetCurrentNode(newCurrent);
     //gameManager = newGameManager;
 }
コード例 #8
0
ファイル: GridAgent.cs プロジェクト: afeike01/PlanetRTS
 public void Initialize(SphereGrid newGrid, LevelManager newManager, Node newCurrent)
 {
     manager          = newManager;
     rB               = GetComponent <Rigidbody>();
     tRenderer        = GetComponent <TrailRenderer>();
     navUpdateCounter = Random.Range(50, 150);
     SetNavigationGrid(newGrid);
     planet = newGrid.gameObject;
     SetCurrentNode(newCurrent);
     //gameManager = newGameManager;
 }
コード例 #9
0
    public Node(Grid newGrid, Vector3 location, NodeType nodeLevel, int num)
    {
        this.gridParent = newGrid;
        this.level      = nodeLevel;
        this.xVal       = location.x;
        this.yVal       = location.y;
        this.zVal       = location.z;
        this.nodeNum    = num;

        gridCoordinates   = location;
        cubeCoordinates   = SphereGrid.GridToCubeCoordinates(this);
        sphereCoordinates = SphereGrid.CubeToSphereCoordinates(cubeCoordinates);
    }
コード例 #10
0
    public override void OnInspectorGUI()
    {
        DrawDefaultInspector();
        SphereGrid sphereGrid = (SphereGrid)target;

        if (GUILayout.Button("Clear objects"))
        {
            sphereGrid.ClearPoints();
        }
        if (GUILayout.Button("Build object"))
        {
            sphereGrid.GeneratePoints();
        }
    }
コード例 #11
0
        private void SphereGridActivation_Changed(object sender, RoutedEventArgs e)
        {
            if (_refreshing)
            {
                return;
            }
            var senderBox   = sender as CheckBox;
            var senderIndex = PanelNodeActivatedBy.Children.IndexOf(senderBox);

            var current    = SphereGrid.ReadNode(_currentNode);
            var actCurrent = current.ActivatedBy;

            actCurrent = BitHelper.ToggleBit(actCurrent, senderIndex);
            SphereGrid.SetNodeActivation(_currentNode, actCurrent);
            Refresh();
        }
コード例 #12
0
    public Tile(SphereGrid grid, Tile parent, Vector3 a, Vector3 b, Vector3 c)
    {
        this.grid   = grid;
        this.parent = parent;
        this.a      = a;
        this.b      = b;
        this.c      = c;

        Debug.Assert(a != b);
        Debug.Assert(b != c);
        Debug.Assert(a != c);
        center   = (a + b + c) / 3f;
        children = new List <Tile>();
        neihbors = new Dictionary <Edge, Tile>();
        corners  = new Dictionary <Vector3, List <Tile> >();
    }
コード例 #13
0
        private void RefreshNode()
        {
            var node = SphereGrid.ReadNode(_currentNode);

            TextCurrentNode.Text        = $"Currently editing node #{_currentNode}";
            ComboNodeType.SelectedIndex = node.NodeType;

            var activations = BitHelper.GetBitArray(new[] { node.ActivatedBy }, 8);

            for (var i = 0; i < 7; i++)
            {
                var checkBox = PanelNodeActivatedBy.Children[i] as CheckBox;
                if (checkBox != null)
                {
                    checkBox.IsChecked = activations[i];
                }
            }
        }
コード例 #14
0
ファイル: SphereEntity.cs プロジェクト: Enanyy/SphereGrid
 public void SetTile(Tile tile)
 {
     current = tile;
     grid    = current.grid;
 }
コード例 #15
0
ファイル: SphereEntity.cs プロジェクト: Enanyy/SphereGrid
 void Awake()
 {
     grid = FindObjectOfType <SphereGridTest>().grid;
 }
コード例 #16
0
 public Tile(SphereGrid grid, Tile parent)
 {
     this.grid   = grid;
     this.parent = parent;
 }
コード例 #17
0
 public void SetNavigationGrid(SphereGrid newGrid)
 {
     mainGrid = newGrid;
 }
コード例 #18
0
 public void Initialize(SphereGrid newGrid/*Testing newGameManager*/)
 {
     rB = GetComponent<Rigidbody>();
     navUpdateCounter = Random.Range(50, 150);
     SetNavigationGrid(newGrid);
     planet = newGrid.gameObject;
     //gameManager = newGameManager;
 }
コード例 #19
0
ファイル: GridAgent.cs プロジェクト: afeike01/PlanetRTS
 public void SetNavigationGrid(SphereGrid newGrid)
 {
     mainGrid = newGrid;
 }
コード例 #20
0
 public SphereGridEditor()
 {
     InitializeComponent();
     ComboNodeType.ItemsSource = SphereGrid.GetNames();
 }