using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class LeafGenerator : MonoBehaviour {
public float Radius = 6;
public float Num = 500;
public LeafPhysics[] Leafs;
// Use this for initialization
void Start () {
int spawned = 0;
Ray ray = new Ray();
ray.direction = Vector3.down;
RaycastHit hitInfo = new RaycastHit();
int layer = LayerMask.GetMask("iso_piece");
int tries = 0;
while (spawned < Num && tries < 1000)
{
Vector2 offset = Random.insideUnitCircle;
Vector3 point = transform.position + new Vector3(offset.x * Radius, 20, offset.y * Radius);
ray.origin = point;
bool hit = Physics.Raycast(ray, out hitInfo, 40, layer);
if (hit && hitInfo.normal.y > 0.6f)
{
LeafPhysics leaf = GameObject.Instantiate<LeafPhysics>(Leafs[Random.Range(0, Leafs.Length)]);
leaf.transform.position = hitInfo.point + Vector3.up * 0.03f;
leaf.transform.rotation = Quaternion.Euler(new Vector3(0, Random.value * 360, 0));
float scale = Random.Range(0.9f, 1.3f);
leaf.transform.localScale = new Vector3(scale, scale, scale);
spawned++;
}
tries++;
}
}
// Update is called once per frame
void Update () {
}
}