Example #1
0
 // Update is called once per frame
 void Update()
 {
     if (transform.parent.position.y - storage.Player.transform.position.y >= 20f)
     {
         storage.RenewQueue(transform.parent.gameObject);
         transform.parent.gameObject.SetActive(false);
     }
 }
Example #2
0
    //可能player的character也要在这里进行管理以方便访问
    //同样也要存到ObjectStorage里
    private void Awake()
    {
        storage = ObjectStorage.Instance;
        CreateParentMeshCube();
        var ElevatorGroup = transform.GetChild(0);
        var LaserGroup    = transform.GetChild(1);

        var count = ElevatorGroup.childCount;

        Elevators = new GameObject[count];
        Lasers    = new GameObject[count];

        for (int i = 0; i < count; i++)
        {
            Elevators[i] = ElevatorGroup.GetChild(i).gameObject;
            Lasers[i]    = LaserGroup.GetChild(i).gameObject;
        }
        for (int i = 0; i < count; i++)
        {
            storage.Lasers.AddLast(Lasers[i]);

            storage.RenewQueue(Elevators[i]);
        }
        storage.PresentLaser = storage.Lasers.First;

        //到时候还要写一个背景对象池更新
        //以上初始化对象池信息

        //初始化初始Mesh
        storage.XWidth      = XWidth;
        storage.YHeight     = YHeight;
        storage.ZLength     = ZLength;
        storage.FallSurvive = FallSurvivalTime;
        CreateParentMeshCube();

        //初始化FallingParts序列
        var FallingGroup = transform.GetChild(2);

        for (int j = 0; j < FallingGroup.childCount; j++)
        {
            var fallpart = FallingGroup.GetChild(j).gameObject;
            storage.Fallings.AddLast(fallpart);
            storage.Infos.AddLast(new FallInfo(fallpart));
        }
        storage.PresentFall = storage.Fallings.First;
        storage.PresentInfo = storage.Infos.First;

        //加入Player
        storage.Player     = transform.GetChild(3).gameObject;
        storage.PlayerStat = storage.Player.GetComponent <TransformControllTest>();

        //背景
        var wallgroup = transform.GetChild(4);

        for (int i = 0; i < wallgroup.childCount; i++)
        {
            storage.Walls.AddLast(wallgroup.GetChild(i).gameObject);
        }
        storage.HWall = storage.Walls.First;
        storage.LWall = storage.Walls.Last;
    }