Пример #1
0
 public void setAttr(UFOAttributes _attr)
 {
     attr = _attr;
     gameObject.transform.localScale = gameObject.transform.localScale * _attr.scale;
     foreach (Renderer renderer in gameObject.GetComponentsInChildren <Renderer> ())
     {
         renderer.material.color = _attr.color;
     }
 }
Пример #2
0
    public UFOController[] produceUFOs(UFOAttributes attr, int n)
    {
        // 一次性产生n个UFO

        UFOController[] arr = new UFOController[n];
        for (int i = 0; i < n; i++)
        {
            arr[i] = produceUFO(attr);
        }
        return(arr);
    }
Пример #3
0
    public UFOController produceUFO(UFOAttributes attr)
    {
        UFOController newUFO;

        if (freeQueue.Count == 0)       // 如果没有UFO空闲,则克隆一个对象
        {
            // print("Instantiate");
            GameObject newObj = GameObject.Instantiate(originalUFO);
            newUFO = new UFOController(newObj);
            newObj.transform.position += Vector3.forward * Random.value * 5;
            count++;
        }
        else                            // 如果有UFO空闲,则取出这个UFO
        {
            newUFO = freeQueue.Dequeue();
        }
        newUFO.setAttr(attr);           // 将UFO的颜色速度大小设置成参数指定的样子
        usingList.Add(newUFO);          // 将UFO加入使用中的队列
        newUFO.appear();
        return(newUFO);
    }