Exemplo n.º 1
0
        void SetHarvestCursor()
        {
            if (!Camera.main)
            {
                return;
            }

            Ray        ray = Camera.main.ScreenPointToRay(Input.mousePosition);
            RaycastHit raycastHit;

            if (Physics.Raycast(ray, out raycastHit))
            {
                GameObject hitObject = raycastHit.collider.gameObject;
                VegetationItemInstanceInfo vegetationItemInstanceInfo =
                    hitObject.GetComponent <VegetationItemInstanceInfo>();

                if (vegetationItemInstanceInfo)
                {
                    Cursor.SetCursor(AxeCursor, new UnityEngine.Vector2(0, 0), CursorMode.Auto);
                }
                else
                {
                    Cursor.SetCursor(null, new UnityEngine.Vector2(0, 0), CursorMode.Auto);
                }
            }
        }
Exemplo n.º 2
0
        void RaycastForHarvestObject()
        {
            Ray        ray = Camera.main.ScreenPointToRay(Input.mousePosition);
            RaycastHit raycastHit;

            if (Physics.Raycast(ray, out raycastHit))
            {
                GameObject hitObject = raycastHit.collider.gameObject;
                VegetationItemInstanceInfo vegetationItemInstanceInfo = hitObject.GetComponent <VegetationItemInstanceInfo>();
                if (!vegetationItemInstanceInfo)
                {
                    return;
                }

                //We have detected a collider spawned from the collider system. Here we can add more logic to confirm that this is a object we can harvest. In this example we accept all types as harvestable

                //Now we create a new GameObject with the VegetationItemMask component. This will mask out the selected VegetationItem. If you want this item to respawn include a script with logic that will remove it when time has passed.
                GameObject vegetationItemMaskObject = new GameObject {
                    name = "VegetationItemMask - " + hitObject.name
                };
                vegetationItemMaskObject.transform.position = vegetationItemInstanceInfo.Position;
                vegetationItemMaskObject.AddComponent <VegetationItemMask>().SetVegetationItemInstanceInfo(vegetationItemInstanceInfo);

                //Spawning an particle system for effect
                SpawnHarvestEffect(vegetationItemInstanceInfo.Position);
            }
        }
Exemplo n.º 3
0
 public void SetVegetationItemInstanceInfo(VegetationItemInstanceInfo vegetationItemInstanceInfo)
 {
     Position          = vegetationItemInstanceInfo.Position;
     VegetationType    = vegetationItemInstanceInfo.VegetationType;
     _vegetationItemID = vegetationItemInstanceInfo.VegetationItemID;
     _isDirty          = true;
 }
Exemplo n.º 4
0
    void UpdateVegetationItemInstanceInfo(GameObject colliderObject, ItemSelectorInstanceInfo info)
    {
        VegetationItemInstanceInfo vegetationItemInstanceInfo = colliderObject.GetComponent <VegetationItemInstanceInfo>();

        if (vegetationItemInstanceInfo)
        {
            vegetationItemInstanceInfo.Position = info.Position;
            vegetationItemInstanceInfo.VegetationItemInstanceID = Mathf.RoundToInt(vegetationItemInstanceInfo.Position.x * 100f).ToString() + "_" +
                                                                  Mathf.RoundToInt(vegetationItemInstanceInfo.Position.y * 100f).ToString() + "_" +
                                                                  Mathf.RoundToInt(vegetationItemInstanceInfo.Position.z * 100f).ToString();
            vegetationItemInstanceInfo.Rotation = info.Rotation;
            vegetationItemInstanceInfo.Scale    = info.Scale;
        }
    }