异步加载场景:
using UnityEngine.SceneManagement;
public class click : MonoBehaviour
{
public void Load()
{
SceneManager.LoadSceneAsync(1);
}
}
退出游戏:
Application.Quit();
private void OnApplicationQuit()
{
}
移动摇杆
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class MoveManager : MonoBehaviour
{
public Image rocker; //摇杆点点物体 父物体我们通过.parent取得
private Vector2 beginPos;//点下后的起始位置
private Vector2 beginPos1;//虚拟轴的位置
private int touchphase = 0;
public void Update()
{
Rocker();
}
public void Rocker()
{
TouchPhaseMethod();
if (touchphase==1)
{
//隐藏着的摇杆盘显示出来
rocker.transform.parent.gameObject.SetActive(true);
beginPos = Input.GetTouch(0).position;
beginPos1 = Input.GetTouch(0).position;
//让摇杆盘位置等于屏幕点击的位置
rocker.transform.parent.transform.position = beginPos1;
}
else if (touchphase == 2)
{
//通过运算并normalized后求出两点之间的方向
Vector2 vector = Input.GetTouch(0).position - beginPos;
vector = vector.normalized;
//这里先是求出两点之间的距离 并且同mathf.Clamp进行一个范围的限制,然后在把这个距离与vector 两点之间的方向相乘 得出点点所在的位置
rocker.transform.localPosition = Mathf.Clamp(Vector2.Distance(beginPos, Input.GetTouch(0).position), 0, 200f) * vector;
}
else if (touchphase == 0)
{
//鼠标抬起后 点点回到中间 关闭摇杆盘 初始化beginPos
beginPos = Vector2.zero;
rocker.transform.localPosition = Vector3.zero;
rocker.transform.parent.gameObject.SetActive(false);
}
}
/// <summary>
/// 触摸屏幕的方法(触摸是1,滑动是2,结束是0)
/// </summary>
private void TouchPhaseMethod()
{
if (Input.touchCount > 0)
{
Touch touch = Input.GetTouch(0);
print(touch.position);
if(touch.position.x>72&& touch.position.x < 1300)
{
if (touch.position.y > 60&&touch.position.x < 1400)
{
switch (touch.phase)
{
case TouchPhase.Began:
touchphase = 1;
break;
case TouchPhase.Moved:
touchphase = 2;
break;
case TouchPhase.Ended:
touchphase = 0;
break;
}
}
}
}
}
}