コード例 #1
0
    void addTrees()
    {
        Vector3 facing   = Vector3.zero;
        Vector3 spawn    = Vector3.zero;
        Vector3 absSpawn = Vector3.zero;

        for (int i = 0; i < treeNum; i++)
        {
            voxel  coord   = Surface [Random.Range(0, Mathf.RoundToInt(Surface.Count - 1))];
            string face    = coord.face;
            float  refCord = 0;

            if (coord.ident == "front")
            {
                facing  = Vector3.back;
                refCord = coord.absLoc.z;
            }

            if (coord.ident == "back")
            {
                facing  = Vector3.forward;
                refCord = coord.absLoc.z;
            }

            if (coord.ident == "left")
            {
                facing  = Vector3.right;
                refCord = coord.absLoc.x;
            }

            if (coord.ident == "right")
            {
                facing  = Vector3.left;
                refCord = coord.absLoc.x;
            }

            bool    goAhead   = true;
            Vector3 idenspawn = coord.idenLoc + facing;
            voxel   treeVox   = spaces [Mathf.RoundToInt(idenspawn.x), Mathf.RoundToInt(idenspawn.y), Mathf.RoundToInt(idenspawn.z)];
            treeVox.face = face;
            foreach (var vox in getNeighbours(treeVox))
            {
                if (vox.ident == "tree")
                {
                    goAhead  = false;
                    treeNum += 1;
                    Debug.Log("hit");
                    break;
                }
            }

            coord.assignedToCube.AddComponent <treeScript> ();
            treeScript tree = coord.assignedToCube.GetComponent <treeScript> ();
            tree.leafy   = leaf;
            tree.itemlib = itemlib;
            tree.loggy   = log;
            tree.seed    = coord;
            tree.tring   = i;
        }
    }
コード例 #2
0
 // Update is called once per frame
 void Update()
 {
     if (Input.GetMouseButtonDown(0) && !PauseAndOptionsManager.gameIsPaused)
     {
         Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
         if (Physics.Raycast(ray, out RaycastHit hit))
         {
             if (hit.collider.tag == "Player")
             {
                 selectedTree = hit.collider.GetComponent <treeScript>();
                 foreach (treeScript t in trees)
                 {
                     t.isSelected = false;
                 }
                 selectedTree.isSelected = true;
             }
         }
     }
 }
コード例 #3
0
    private void OnCollisionStay(Collision collision)
    {
        if (collision.collider.CompareTag("treetochop") && behaviourState != 2 && behaviourState != 3 && behaviourState != 4)
        {
            behaviourState = 1;
            //collision.collider.gameObject.tag = "Untagged"; // Remove the tag so that FindTarget won't return it
            currentTree = collision.collider.gameObject;
            ts          = currentTree.GetComponent <treeScript>();
            //Destroy(collision.collider.gameObject);
            //target = FindTarget();
        }

        else if (collision.collider.CompareTag("generator"))
        {
            gs             = generator.GetComponent <generatorScript>();
            behaviourState = 3;
        }
        rb.angularVelocity = Vector3.zero;
        rb.velocity        = Vector3.zero;
    }
コード例 #4
0
    public void CreateTrees()
    {
        for (int i = 0; i < totalTrees; i++)
        {
            GameObject thisTree; // getting our current tree we're making!
            int        randomNum;

            if (i == 0)
            {
                thisTree  = Instantiate(weak_treePrefab, weakTreePos, Quaternion.identity, transform) as GameObject;
                randomNum = 0;
            }
            else
            {
                randomNum = Random.Range(0, 2); // randomize if it's a weak or strong tree!

                if (randomNum == 0)             // 0 means weak
                {
                    thisTree = Instantiate(weak_treePrefab, weakTreePos, Quaternion.identity, transform) as GameObject;
                }
                else // other nums are strong!
                {
                    thisTree = Instantiate(strong_treePrefab, strongTreePos, Quaternion.identity, transform) as GameObject;
                }
            }

            treeObjects.Add(thisTree); //adding new tree object to the list!
            if (thisTree.GetComponent <treeScript>() != null)
            {
                treeScript thisTree_SCR = thisTree.GetComponent <treeScript>();

                treeScripts.Add(thisTree_SCR); // adding tree script to list!
                thisTree_SCR.InitializeTree(i, randomNum);
            }
            else
            {
                Debug.Log("ERROR!");
            }
        }
    }