コード例 #1
0
    // Update is called once per frame
    void Update()
    {
        if (done)
        {
            return;
        }
        var newPosition = Util.CalculateRaycastPosition();

        //Debug.Log(newPosition);
        this.transform.position = new Vector3(newPosition.x, this.transform.position.y, newPosition.z);
        bool canPlace = (Consumable?.CanPlace()).GetValueOrDefault();

        if (canPlace)
        {
            meshIndicator.material.color = Color.green;
        }
        else
        {
            meshIndicator.material.color = Color.red;
        }

        if (Input.GetMouseButtonDown(0))
        {
            if (canPlace)
            {
                SoundManager.instance.PlayOneShotSound(SoundType.MenuClick);
                GameManager.instance.ConsumableManager.Consume(Consumable);
                GameObject.Destroy(this.gameObject);
            }
        }
        else if (Input.GetMouseButtonDown(1) || Input.GetKeyDown(KeyCode.Escape))
        {
            SoundManager.instance.PlayOneShotSound(SoundType.MenuClick);
            GameObject.Destroy(this.gameObject);
        }
    }