void Start()
    {
        if (displayLine)
        {
            lineRenderer = transform.Require <LineRenderer>();
            lineRenderer.useWorldSpace = false;
        }


        RaycastHit rayhit;
        float      dist = 100;

        if (Physics.Raycast(transform.position, transform.forward, out rayhit))
        {
            dist = (transform.position - rayhit.point).magnitude;
            if (decal != null)
            {
                Transform t = Instantiate(decal, rayhit.point, Quaternion.identity) as Transform;
                t.forward = rayhit.normal;
                t.parent  = rayhit.collider.transform;
                t.Rotate(0, 0, RandomF.Range(0, 360));
            }

            Unit unit = rayhit.collider.GetComponentOnOrAbove <Unit>();
            if (unit != null)
            {
                unit.HitEffect(rayhit.point);
                unit.mortality.Hit(atk);
            }
        }
        if (lineRenderer != null)
        {
            lineRenderer.SetPosition(1, new Vector3(0, 0, dist));
        }
    }
Пример #2
0
    public void Unfocus()
    {
        string name = "Control" + RandomF.Range(10000, 19999);

        GUI.SetNextControlName(name);
        GUI.Button(new Rect(-100, -100, 5, 5), "");
        GUI.FocusControl(name);
    }
Пример #3
0
 void Update()
 {
     timeout += Time.deltaTime;
     if (timeout >= spawnTime)
     {
         timeout  -= spawnTime;
         spawnTime = RandomF.Range(minTime, maxTime);
         Spawn();
     }
 }
Пример #4
0
 float Eval(bool b, float min, float max)
 {
     if (!b)
     {
         return(1.0f);
     }
     if (normalDist)
     {
         return(RandomF.Normal(min, max));
     }
     return(RandomF.Range(min, max));
 }
    public static T RandomKey <T, K>(this Dictionary <T, K> d)
    {
        int i      = 0;
        int chosen = (int)RandomF.Range(0, d.Count);

        foreach (T t in d.Keys)
        {
            if (i == chosen)
            {
                return(t);
            }
            i++;
        }
        return(default(T));
    }
    void Emit()
    {
        ParticleMaker p = MakeParticle();

        p.position = transform.position + Vector3.Scale(range, RandomF.insideUnitSphere);
        p.size     = RandomF.Range(minSize, maxSize);
        p.color    = ColorF.HSVLerp(colorRangeStart, colorRangeEnd, Random.value);
        if (randomRotation)
        {
            p.rotation = RandomF.Range(0f, 360f);
        }
        p.angularVelocity = angularVelocity + RandomF.Range(-randAngularVelocity, randAngularVelocity);

        //p.color = C

        target.SetNext(p);
    }
Пример #7
0
 public static Color RandomHue(float s, float v, float a = 1)
 {
     return(new Color(RandomF.Range(0, 1), s, v, a).HSVtoRGB());
 }
Пример #8
0
 void Start()
 {
     spawnTime = RandomF.Range(minTime, maxTime);
 }