예제 #1
0
    void SpawnPickup()
    {
        if (!rollForSpawn(pickupSpawnChance))
        {
            return;
        }

        int lanePosition = RollLane();
        int objType      = RollObjType(PickupManager.Manager.ObjectTypes.Count);

        pickup = PickupManager.Manager.GetObject(objType);

        if (pickup == null)
        {
            pickup = Instantiate(PickupManager.Manager.ObjectTypes[objType], Vector2.zero, Quaternion.identity);
            PickupManager.Manager.AddObject(pickup);

            pickup.pickedUp.AddListener(PickupManager.Manager.PoolObject);
        }

        pickup.transform.position = new Vector2(ObjSpawnPoint.position.x, Lanes.GetLane(lanePosition).transform.position.y);
        pickup.LaneNo             = lanePosition;
        pickup.ChangeOrder();

        pickup.pickedUp.AddListener(onPickupCollected);
    }