Я могу заметить некоторые проблемы в вашем коде. Не рекомендуется сравнивать Vector3
с ==
или !=
. Приблизительное сравнение в порядке. Вы используете Input.GetMouseButtonDown
на мобильной платформе.
Для этого вам нужно использовать Input.touches
. Переверните его, сохраните начальную позицию в TouchPhase.Began
, а затем конечную позицию в TouchPhase.Ended
. Затем вы можете использовать обе переменные, чтобы определить, в каком направлении движется палец.
Код ниже определяет направление движения, даже когда палец еще не выпущен с помощью TouchPhase.Moved
, Вы можете отключить это, включив логическую переменную detectSwipeOnlyAfterRelease
. Вы также можете изменить SWIPE_THRESHOLD
для чувствительности.
public class SwipeDetector : MonoBehaviour
{
private Vector2 fingerDown;
private Vector2 fingerUp;
public bool detectSwipeOnlyAfterRelease = false;
public float SWIPE_THRESHOLD = 20f;
// Update is called once per frame
void Update()
{
foreach (Touch touch in Input.touches)
{
if (touch.phase == TouchPhase.Began)
{
fingerUp = touch.position;
fingerDown = touch.position;
}
//Detects Swipe while finger is still moving
if (touch.phase == TouchPhase.Moved)
{
if (!detectSwipeOnlyAfterRelease)
{
fingerDown = touch.position;
checkSwipe();
}
}
//Detects swipe after finger is released
if (touch.phase == TouchPhase.Ended)
{
fingerDown = touch.position;
checkSwipe();
}
}
}
void checkSwipe()
{
//Check if Vertical swipe
if (verticalMove() > SWIPE_THRESHOLD && verticalMove() > horizontalValMove())
{
//Debug.Log("Vertical");
if (fingerDown.y - fingerUp.y > 0)//up swipe
{
OnSwipeUp();
}
else if (fingerDown.y - fingerUp.y < 0)//Down swipe
{
OnSwipeDown();
}
fingerUp = fingerDown;
}
//Check if Horizontal swipe
else if (horizontalValMove() > SWIPE_THRESHOLD && horizontalValMove() > verticalMove())
{
//Debug.Log("Horizontal");
if (fingerDown.x - fingerUp.x > 0)//Right swipe
{
OnSwipeRight();
}
else if (fingerDown.x - fingerUp.x < 0)//Left swipe
{
OnSwipeLeft();
}
fingerUp = fingerDown;
}
//No Movement at-all
else
{
//Debug.Log("No Swipe!");
}
}
float verticalMove()
{
return Mathf.Abs(fingerDown.y - fingerUp.y);
}
float horizontalValMove()
{
return Mathf.Abs(fingerDown.x - fingerUp.x);
}
//////////////////////////////////CALLBACK FUNCTIONS/////////////////////////////
void OnSwipeUp()
{
Debug.Log("Swipe UP");
}
void OnSwipeDown()
{
Debug.Log("Swipe Down");
}
void OnSwipeLeft()
{
Debug.Log("Swipe Left");
}
void OnSwipeRight()
{
Debug.Log("Swipe Right");
}
}
Go не имеет централизованного реестра пакетов, такого как npm или pip.
Кроме того, управление зависимостями go все еще не «унифицировано», некоторые используют dep
, некоторые glide
или go mod
. Все они полагаются на программное обеспечение для контроля версий, такое как git.
Если ваш пакет находится на Github, вы можете проверить вкладку Insights> Traffic и посмотреть уникальные клонеры, например.
Другим решением может быть внедрение прокси на вашем git-сервере для отслеживания клонов.
Вы не можете сделать это. Как те, которые разработаны как часть языка Go. Как и пакеты npm, вы не скачиваете его.