コード例 #1
0
ファイル: FillPit.cs プロジェクト: lost-home/CiGA2020
    private void OnTriggerStay2D(Collider2D collision)
    {
        ExpressPackage pack = collision.GetComponent <ExpressPackage> ();

        if (pack != null && pack.state == Gear.State.Dropped)
        {
            FillWithExpressPackage(pack);
        }
    }
コード例 #2
0
ファイル: FillPit.cs プロジェクト: lost-home/CiGA2020
    public void FillWithExpressPackage(ExpressPackage pack)
    {
        pack.dropMovement.enabled = false;

        // 自下而上寻找空点
        int  row    = 0;
        int  column = 0;
        bool found  = false;

        while (row < fillCountPerColumn)
        {
            foreach (var kv in depot)
            {
                if (kv.Value[row] == null)
                {
                    found         = true;
                    column        = kv.Key;
                    kv.Value[row] = pack;
                    goto Result;
                }
            }
            row++;
        }

Result:
        if (found)
        {
            pack.transform.position = new Vector3(startFillPosition.x + column * expressPackageSize.x, startFillPosition.y + row * expressPackageSize.y);

            EventKit.Broadcast(GlobalSymbol.EVT_ExpressPackagePlaced, pack.gameObject);

            CameraShakeManager.Instance.AddShake("camera_shake 2 0 0.1,0.1 10 0.25");
        }
        else
        {
            // 满了
        }
    }