示例#1
0
        public void AddBlock(Vector2 screenPos)
        {
            blockPreview.enabled = false;

            var pos = TouchUtility.HitPosition(screenPos, gameObject);

            var block = Instantiate(blockPrefab, pos, Quaternion.identity);
        }
示例#2
0
    public void StartStroke(Vector2 screenPos)
    {
        var hitPos = TouchUtility.HitPosition(screenPos, gameObject, true);

        currentY = hitPos.y;

        var pos = transform.position;

        pos.y = currentY;
        transform.position = pos;

        isPainting = true;

        currentRow.Clear();
    }
示例#3
0
    public void EndStroke(Vector2 screenPos)
    {
        isPainting = false;

        int layer = LayerMask.NameToLayer("Block");

        currentRow.ForEach((block) => {
            block.gameObject.layer = layer;
        });

        var hitPos = TouchUtility.HitPosition(screenPos, gameObject);

        if (target == null)
        {
            target = Instantiate(targetPrefab, hitPos + Vector3.up * 0.5f, Quaternion.identity).transform;
        }
    }
示例#4
0
    public void MoveStroke(Vector2 screenPos)
    {
        var hitPos = TouchUtility.HitPosition(screenPos, gameObject);

        if (currentY != hitPos.y)
        {
            return;
        }

        var spaceTaken = currentRow.Exists((Transform oldBlock) => {
            return(oldBlock.position == hitPos);
        });

        if (
            currentRow.Count > 1 &&
            currentRow[currentRow.Count - 2].position == hitPos
            )
        {
            var lastBlock = currentRow[currentRow.Count - 1];
            currentRow.RemoveAt(currentRow.Count - 1);
            Destroy(lastBlock.gameObject);

            return;
        }

        if (spaceTaken)
        {
            return;
        }

        var block = Instantiate(blockPrefab, hitPos, Quaternion.identity);

        block.gameObject.layer = LayerMask.NameToLayer("maker.newBlock");

        currentRow.Add(block);

        if (cubeBoy == null)
        {
            cubeBoy = Instantiate(cubeBoyPrefab, hitPos + Vector3.up * 0.5f, Quaternion.identity).transform;

            cubeBoy.RotateAround(cubeBoy.position, Vector3.up, 180.0f);
        }
    }
示例#5
0
 public void MoveBlockPreview(Vector2 screenPos)
 {
     blockPreview.transform.position = TouchUtility.HitPosition(screenPos, gameObject);
 }
示例#6
0
 public void StartBlockPreview(Vector2 screenPos)
 {
     blockPreview.transform.position = TouchUtility.HitPosition(screenPos, gameObject);
     blockPreview.enabled            = true;
 }