コード例 #1
0
    public HookahMaker CreateHookahMaker()
    {
        HookahMaker newWorker = Instantiate(availableHookahMakers[currentWorkerIndex], entry.position, Quaternion.identity, player.transform);

        player.AddWorker(newWorker);

        newWorker.AddMoveAction(workerMovePos.position);

        availableHookahMakers.RemoveAt(currentWorkerIndex);
        currentWorkerIndex = 0;

        return(newWorker);
    }
コード例 #2
0
    void HandleWorkerActions()
    {
        HookahMaker hookahMaker = GetSelectedWorker();

        if (hookahMaker == null)
        {
            return;
        }

        Ray inputRay = mainCamera.ScreenPointToRay(Input.mousePosition);

        if (Physics.Raycast(inputRay, out RaycastHit hit))
        {
            LayerMask colliderMask = 1 << hit.collider.gameObject.layer;

            if (!shiftPressed)
            {
                hookahMaker.ClearActions();
            }

            if (colliderMask == hookahMask)
            {
                Hookah hookah = hit.collider.gameObject.GetComponent <Hookah>();
                hookahMaker.AddChooseTobaccoAction(hookah);
            }
            else if (colliderMask == tableMask)
            {
                Table table = hit.collider.gameObject.GetComponent <Table>();
                hookahMaker.AddBringHookahAction(table);
            }
            else
            {
                hookahMaker.AddMoveAction(hit.point);
            }
        }
    }