Наследование: MonoBehaviour
Пример #1
0
    private void fbSpawn()
    {
        int fb_count = getFoodbitCount();

        if (fb_count >= 1)
        {
            int        fb_index  = Random.Range(0, fb_count);
            GameObject fb        = (GameObject)foodbits[fb_index];
            Foodbit    fb_script = fb.GetComponent <Foodbit>();
            Vector3    fb_pos    = fb_script.transform.localPosition;
            pos = Utility.RandomVec(-spore_range,
                                    Foodbit.foodbitHeight / 2,
                                    spore_range
                                    );

            Vector3 new_pos = fb_pos + pos;
            if (new_pos.x > wide_spread || new_pos.x < -wide_spread ||
                new_pos.z > wide_spread || new_pos.z < -wide_spread)
            {
                new_pos = Utility.RandomVec(-wide_spread,
                                            wide_spread,
                                            wide_spread
                                            );
            }

            newFoodbit(new_pos);
        }
    }
Пример #2
0
    void closestFoodbit()
    {
        targetFbit = null;                      // reference to the script of the closest foodbit
        GameObject closest = null;
        float      dist    = Mathf.Infinity;

        cs = Physics.OverlapSphere(_t.position, (float)los);

        foreach (Collider c in cs)
        {
            GameObject f = (GameObject)c.gameObject;
            if (f && f.name == "Foodbit")
            {
                Vector3 diff      = f.transform.position - _t.position;
                float   curr_dist = diff.magnitude;
                if (curr_dist < dist)
                {
                    closest = f;
                    dist    = curr_dist;
                }
                if (curr_dist < (float)fb_eat_range && crt.state == Creature.State.persuing_food)
                {
                    fbit        = f.GetComponent <Foodbit>();
                    crt.energy += fbit.energy;
                    fbit.destroy();
                    crt.food_eaten++;
                }
            }
        }

        distance_to_goal = 0F;
        if (closest)
        {
            targetFbit = closest.gameObject;
        }

        goal = targetFbit;
        if (goal)
        {
            distance_to_goal = distanceToGoal();
        }
    }
Пример #3
0
    void closestFoodbit()
    {
        targetFbit 		= null;	// reference to the script of the closest foodbit
        GameObject closest 	= null;
        float dist 			= Mathf.Infinity;
        cs = Physics.OverlapSphere(_t.position, (float)los);

        foreach (Collider c in cs) {
            GameObject f = (GameObject) c.gameObject;
            if (f && f.name == "Foodbit") {
                Vector3 diff = f.transform.position - _t.position;
                float curr_dist = diff.magnitude;
                if (curr_dist < dist) {
                    closest = f;
                    dist = curr_dist;
                }
                if (curr_dist < (float)fb_eat_range && crt.state == Creature.State.persuing_food) {
                    fbit = f.GetComponent<Foodbit>();
                    crt.energy += fbit.energy;
                    fbit.destroy ();
                    crt.food_eaten++;
                }
            }
        }

        distance_to_goal = 0F;
        if (closest) {
            targetFbit = closest.gameObject;
        }

        goal = targetFbit;
        if (goal) {
            distance_to_goal = distanceToGoal();
        }
    }