public void Set(Vector3 position, TreeNode2 origine, byte rank) { transform.position = position; _state = State.PREWARMING; _stateProgres = 0f; _origine = origine; _rank = rank; _size = 0; _direction = position - origine.transform.position; _direction.z = 0; _direction.Normalize(); // Calculate prewarm duration _prewarmDuration = Vector3.Distance(position, origine.transform.position) / _prewarmSpeed; // Spawn node on banch _node = Instantiate(TreeSystem2._debug_staticNodePrefab).GetComponent <Node>(); _node.transform.parent = TreeSystem2._debug_staticNodeContainer; _node.transform.position = new Vector3(position.x, position.y, 0); _node._treeNode = this; // Set feedback SetRank(); SetBranch(); }
public void AddBranch(Vector3 position, int rank) { GameObject newBranch = Instantiate(TreeSystem2._debug_staticTreeNodePrefab); newBranch.transform.position = position; TreeNode2 newBranchNode = newBranch.GetComponent <TreeNode2>(); newBranchNode.Set(position, this, (byte)rank); _branchingNodes.Add(newBranchNode); }
void SpawnFirstNode() { GameObject startNode = Instantiate(_debug_treeNodePrefab); startNode.transform.position = transform.position; startNode.transform.localScale = Vector3.one * 1; _startNode = startNode.GetComponent<TreeNode2>(); _startNode._state = TreeNode2.State.GROWING; _startNode._askGrow = true; _startNode._rank = 8; _startNode._size = 2; _startNode._direction = Vector3.up; }
void SpawnFirstNode() { GameObject startNode = Instantiate(_debug_treeNodePrefab); startNode.transform.position = transform.position; startNode.transform.localScale = Vector3.one * 1; _startNode = startNode.GetComponent <TreeNode2>(); _startNode._state = TreeNode2.State.GROWING; _startNode._askGrow = true; _startNode._rank = 8; _startNode._size = 2; _startNode._direction = Vector3.up; }
IEnumerator Grow(TreeNode2 node) { float delay = 5f; float time = delay; for (;;) { time = Mathf.MoveTowards(time, 0, Time.fixedDeltaTime); if (time <= 0) { time = delay; if (!TreeNode2._stopGrowing) { node._askGrow = true; } } yield return null; } }
public TreeNode2(Vector3 position, TreeNode2 origine, byte rank) { transform.position = position; _state = State.PREWARMING; _stateProgres = 0f; _origine = origine; _rank = rank; _size = 0; // Calculate prewarm duration _prewarmDuration = Vector3.Distance(position, origine.transform.position) / _prewarmSpeed; // Set feedback SetRank(); SetBranch(); }
IEnumerator Grow(TreeNode2 node) { float delay = 5f; float time = delay; for (;;) { time = Mathf.MoveTowards(time, 0, Time.fixedDeltaTime); if (time <= 0) { time = delay; if (!TreeNode2._stopGrowing) { node._askGrow = true; } } yield return(null); } }