NGUI 關於大背景用滑鼠點選移動問題
阿新 • • 發佈:2019-02-13
float speed = 0.5f;
Vector2 start, stop;
Vector2 step;//滑鼠點選移動的向量
private Vector3 Velocity = Vector3.zero;
Vector2 pstart, pstop, pstep;
float border_y, border_x;//攝像機的邊界值
int curStep, maxStep;
Transform common;
public GameObject backGround;
public GameObject panelPlant;
Vector2 startPosition, stopPosition;//滑鼠點選開始和結束時的位置
Vector2 neoPosition;
// Use this for initialization
void Start()
{
startPosition = Input.mousePosition;
stopPosition = Input.mousePosition;
neoPosition = new Vector2(-1, -1);
border_x =60;
border_y = 120f;
curStep = 0;
maxStep = 0;
}
// Update is called once per frame
void Update()
{
if (Input.GetMouseButton(0) && UICamera.hoveredObject != null && UICamera.hoveredObject.name == "BackGround")
{
stopPosition = Input.mousePosition;
if (startPosition.x < 0) { startPosition = stopPosition; return; }
step = startPosition - stopPosition;
startPosition = stopPosition;
if (step.x < 2 && step.y < 2 && step.x > -2 && step.y > -2) return;//avoid move when click
step *= 1.3f;
transform.localPosition = new Vector2(transform.localPosition.x + step.x, transform.localPosition.y + step.y);
if (transform.localPosition.x < -border_x)
{
transform.localPosition = new Vector2(-border_x, transform.localPosition.y);
}
if (transform.localPosition.x > border_x)
{
transform.localPosition = new Vector2(border_x, transform.localPosition.y);
}
if (transform.localPosition.y < -border_y)
{
transform.localPosition = new Vector2(transform.localPosition.x, -border_y);
}
if (transform.localPosition.y > border_y)
{
transform.localPosition = new Vector2(transform.localPosition.x, border_y);
}
}
else if (startPosition.x >= 0) { startPosition = neoPosition; }
}
Vector2 start, stop;
Vector2 step;//滑鼠點選移動的向量
private Vector3 Velocity = Vector3.zero;
Vector2 pstart, pstop, pstep;
float border_y, border_x;//攝像機的邊界值
int curStep, maxStep;
Transform common;
public GameObject backGround;
public GameObject panelPlant;
Vector2 startPosition, stopPosition;//滑鼠點選開始和結束時的位置
Vector2 neoPosition;
// Use this for initialization
void Start()
{
startPosition = Input.mousePosition;
stopPosition = Input.mousePosition;
neoPosition = new Vector2(-1, -1);
border_x =60;
border_y = 120f;
curStep = 0;
maxStep = 0;
}
// Update is called once per frame
void Update()
{
if (Input.GetMouseButton(0) && UICamera.hoveredObject != null && UICamera.hoveredObject.name == "BackGround")
{
stopPosition = Input.mousePosition;
if (startPosition.x < 0) { startPosition = stopPosition; return; }
step = startPosition - stopPosition;
startPosition = stopPosition;
if (step.x < 2 && step.y < 2 && step.x > -2 && step.y > -2) return;//avoid move when click
step *= 1.3f;
transform.localPosition = new Vector2(transform.localPosition.x + step.x, transform.localPosition.y + step.y);
if (transform.localPosition.x < -border_x)
{
transform.localPosition = new Vector2(-border_x, transform.localPosition.y);
}
if (transform.localPosition.x > border_x)
{
transform.localPosition = new Vector2(border_x, transform.localPosition.y);
}
if (transform.localPosition.y < -border_y)
{
transform.localPosition = new Vector2(transform.localPosition.x, -border_y);
}
if (transform.localPosition.y > border_y)
{
transform.localPosition = new Vector2(transform.localPosition.x, border_y);
}
}
else if (startPosition.x >= 0) { startPosition = neoPosition; }
}