[英]How to convert mouse movement to android movement in unity
嘿伙計們,我是 android 游戲開發的新手,我遇到了這個難題。 問題是我不知道如何將我的“void OnMouseDown”轉換為 android 語法。 這是代碼:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ball : MonoBehaviour
{
public Rigidbody2D rb;
public float relaseTime = .15f;
private bool isPressed = false;
void Update()
{
if (isPressed)
{
rb.position = Camera.main.ScreenToWorldPoint(Input.mousePosition);
}
}
void OnMouseDown()
{
isPressed = true;
rb.isKinematic = true;
}
void OnMouseUp()
{
isPressed = false;
rb.isKinematic = false;
StartCoroutine(Realase());
}
IEnumerator Realase()
{
yield return new WaitForSeconds(relaseTime);
GetComponent<SpringJoint2D>().enabled = false;
}
}
您需要使用Input.GetTouch
您在Update
中檢查OnWhatever
而不是鼠標的OnWhatever事件。
像這樣:
public class TouchPhaseExample : MonoBehaviour
{
public Vector2 startPos;
public Vector2 direction;
public Text m_Text;
string message;
void Update()
{
//Update the Text on the screen depending on current TouchPhase, and the current direction vector
m_Text.text = "Touch : " + message + "in direction" + direction;
// Track a single touch as a direction control.
if (Input.touchCount > 0)
{
Touch touch = Input.GetTouch(0);
// Handle finger movements based on TouchPhase
switch (touch.phase)
{
//When a touch has first been detected, change the message and record the starting position
case TouchPhase.Began:
// Record initial touch position.
startPos = touch.position;
message = "Begun ";
break;
//Determine if the touch is a moving touch
case TouchPhase.Moved:
// Determine direction by comparing the current touch position with the initial one
direction = touch.position - startPos;
message = "Moving ";
break;
case TouchPhase.Ended:
// Report that the touch has ended when it ends
message = "Ending ";
break;
}
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.