Быстрое перемещение объекта по экрану с помощью касания в Unity? - PullRequest
0 голосов
/ 15 февраля 2019

В настоящее время я занимаюсь разработкой игры и хочу позволить игроку перетаскивать игровой объект по экрану с помощью сенсорного управления.Однако по какой-то причине мой код продолжает возвращать ошибку (deltaPosition не существует в текущем контексте), что не должно происходить, потому что я получил код из видео на YouTube, где он не отображал никаких ошибок компиляции, когдачеловек показал код.Это связано с новой версией C # или кто-то знает, как я мог решить эту проблему.Спасибо введите описание изображения здесь

using System.Collections;
using System.Collections.Generic;
using UnityEngine;


    public class PositionTracker : MonoBehaviour
    {
        [SerializeField]
        float                  _horizontalimit = 2.5f, _verticalLimit = 2.5f, dragSpeed = 0.1f;

        Transform cashedTransform;

        Vector3 startingPos;


        void Start()
        {
            cashedTransform = transform;
            startingPos = cashedTransform.position;
        }

        void Update()
        {
            if (Input.touchCount > 0)
            {
                Vector2 deltaPostion = Input.GetTouch(0).deltaPosition;

                switch (Input.GetTouch(0).phase)
                {
                    case TouchPhase.Began:
                    break;

                    case TouchPhase.Moved:
                        DragObject(deltaPosition);
                        break;

                    case TouchPhase.Ended:
                        break;
                }
            }

            //Debug.Log("target is " + touch.position + " pixels from the left");
        }

        void DragObject(Vector2 deltaPostion)
        {
            cashedTransform.position = new Vector3(Mathf.Clamp((deltaPosition.x * dragSpeed) + cashedTransform.position.x,
                startingPos.x - _horizontalimit, startingPos.x + _horizontalimit), 
            Mathf.Clamp((deltaPostion.y * dragSpeed) + cashedTransform.position.y,
            startingPos.y - _verticalLimit, startingPos.y + _verticalLimit),
            cashedTransform.position.z);

        }
    }

1 Ответ

0 голосов
/ 15 февраля 2019

Нет deltaPosition, потому что вы назвали переменную deltaPostion, следовательно, ошибка ('deltaPosition' does not exist in the current context) enter image description here

...