//bg
public GameObject BackButton;
public GameObject LoadingChange;
public float backButtonDisplacement;
// public static float TopCloudHeight = 57.6f;
// public float maxBg, minBg;
public float maxCamera = 0;
public static float maxCam = 65.5f, minCam = 0; // Camera 72 old
// StarCounter
// public static bool FinishedSetup;
// public static int LastVisit = -1;
// public static Vector3 LastVisitLoc;
//bool FinishedPositioning = false;
public RectTransform MapCanvas;
// Use this for initialization
void Awake()
{
maxCam = maxCamera;
// calculate scale
float screenRate = (float)Screen.height / Screen.width;
float min = 1.779f, max = 1.333f;
float additionScale = ((screenRate - max) / (min - max)) * 0.3f;
MapCanvas.localScale = new Vector3(1.3f - additionScale, 1, 1);
// FinishedPositioning = false;
}
// Update is called once per frame
void FixedUpdate()
{
UpdateTouchInput();
}
#region Dragging
Vector3 MouseLastPosition;
float CamStartPosY, MouseStartPosY;
void UpdateTouchInput()
{
if (Input.GetMouseButtonDown(0))
{
Vector3 pos = Input.mousePosition;
TouchBegan(pos);
MouseLastPosition = pos;
return;
}
else if (Input.GetMouseButton(0))
{
Vector3 pos = Input.mousePosition;
if (MouseLastPosition != pos)
{
TouchMoved(pos);
MouseLastPosition = pos;
}
return;
}
else if (Input.GetMouseButtonUp(0))
{
Vector3 pos = Camera.main.ScreenToWorldPoint(Input.mousePosition);
TouchEnded(pos);
return;
}
UpdateCamMovement();
int i = 0;
while (i < Input.touchCount)
{
if (Input.GetTouch(i).phase == TouchPhase.Began)
{
Vector3 pos = Input.GetTouch(i).position;
TouchBegan(pos);
return;
}
if (Input.GetTouch(i).phase == TouchPhase.Moved)
{
Vector3 pos = Input.GetTouch(i).position;
TouchMoved(pos);
return;
}
if (Input.GetTouch(i).phase == TouchPhase.Ended)
{
Vector3 pos = Camera.main.ScreenToWorldPoint(Input.GetTouch(i).position);
TouchEnded(pos);
return;
}
if (Input.GetTouch(i).phase == TouchPhase.Canceled)
{
Vector3 pos = Camera.main.ScreenToWorldPoint(Input.GetTouch(i).position);
TouchCanceled(pos);
return;
}
++i;
}
}
float timeDelta;
float velocity;
float targetPositionY;
bool isSwiping = false;
void UpdateCamMovement()
{
if (!isSwiping)
{
float moveY = velocity * 0.9f;
float newposy = transform.position.y + moveY;
velocity = moveY;
if (newposy < minCam)
{
newposy = minCam;
}
else if (newposy > maxCam)
{
newposy = maxCam;
}
transform.position = new Vector3(transform.position.x, newposy, transform.position.z);
BackButton.transform.position = new Vector3(BackButton.transform.position.x, transform.position.y + backButtonDisplacement, BackButton.transform.position.z);
LoadingChange.transform.position = new Vector3(LoadingChange.transform.position.x, transform.position.y + backButtonDisplacement -1, LoadingChange.transform.position.z);
//
// SocialButton.transform.position = new Vector3(SocialButton.transform.position.x, transform.position.y + SocialButtonDisplacement, SocialButton.transform.position.z);
// float newBgRate = (newposy - minCam) / (maxCam - minCam);
// BackgroundContainer.transform.position = new Vector3(BackgroundContainer.transform.position.x, newposy + (maxBg - minBg) * newBgRate, BackgroundContainer.transform.position.z);
}
}
// Handle TouchEvent
void TouchBegan(Vector3 touch)
{
MouseStartPosY = touch.y;
CamStartPosY = transform.position.y;
isSwiping = true;
}
void TouchMoved(Vector3 touch)
{
float newposy = CamStartPosY - (touch.y - MouseStartPosY) / Screen.height * 10;
if (newposy < minCam)
{
newposy = minCam;
}
else if (newposy > maxCam)
{
newposy = maxCam;
}
transform.position = new Vector3(transform.position.x, newposy, transform.position.z);
BackButton.transform.position = new Vector3(BackButton.transform.position.x, transform.position.y + backButtonDisplacement, BackButton.transform.position.z);
// SocialButton.transform.position = new Vector3(SocialButton.transform.position.x, transform.position.y + SocialButtonDisplacement, SocialButton.transform.position.z);
// float newBgRate = (newposy - minCam) / (maxCam - minCam);
// BackgroundContainer.transform.position = new Vector3(BackgroundContainer.transform.position.x, newposy + (maxBg - minBg) * newBgRate, BackgroundContainer.transform.position.z);
}
void TouchEnded(Vector3 touch)
{
isSwiping = false;
if (Mathf.Abs(transform.position.y - CamStartPosY) > 1)
velocity = (transform.position.y - CamStartPosY > 0) ? 0.2f : -0.2f;
else
velocity = 0;
}
void TouchCanceled(Vector3 touch)
{
}
#endregion
public GameObject BackButton;
public GameObject LoadingChange;
public float backButtonDisplacement;
// public static float TopCloudHeight = 57.6f;
// public float maxBg, minBg;
public float maxCamera = 0;
public static float maxCam = 65.5f, minCam = 0; // Camera 72 old
// StarCounter
// public static bool FinishedSetup;
// public static int LastVisit = -1;
// public static Vector3 LastVisitLoc;
//bool FinishedPositioning = false;
public RectTransform MapCanvas;
// Use this for initialization
void Awake()
{
maxCam = maxCamera;
// calculate scale
float screenRate = (float)Screen.height / Screen.width;
float min = 1.779f, max = 1.333f;
float additionScale = ((screenRate - max) / (min - max)) * 0.3f;
MapCanvas.localScale = new Vector3(1.3f - additionScale, 1, 1);
// FinishedPositioning = false;
}
// Update is called once per frame
void FixedUpdate()
{
UpdateTouchInput();
}
#region Dragging
Vector3 MouseLastPosition;
float CamStartPosY, MouseStartPosY;
void UpdateTouchInput()
{
if (Input.GetMouseButtonDown(0))
{
Vector3 pos = Input.mousePosition;
TouchBegan(pos);
MouseLastPosition = pos;
return;
}
else if (Input.GetMouseButton(0))
{
Vector3 pos = Input.mousePosition;
if (MouseLastPosition != pos)
{
TouchMoved(pos);
MouseLastPosition = pos;
}
return;
}
else if (Input.GetMouseButtonUp(0))
{
Vector3 pos = Camera.main.ScreenToWorldPoint(Input.mousePosition);
TouchEnded(pos);
return;
}
UpdateCamMovement();
int i = 0;
while (i < Input.touchCount)
{
if (Input.GetTouch(i).phase == TouchPhase.Began)
{
Vector3 pos = Input.GetTouch(i).position;
TouchBegan(pos);
return;
}
if (Input.GetTouch(i).phase == TouchPhase.Moved)
{
Vector3 pos = Input.GetTouch(i).position;
TouchMoved(pos);
return;
}
if (Input.GetTouch(i).phase == TouchPhase.Ended)
{
Vector3 pos = Camera.main.ScreenToWorldPoint(Input.GetTouch(i).position);
TouchEnded(pos);
return;
}
if (Input.GetTouch(i).phase == TouchPhase.Canceled)
{
Vector3 pos = Camera.main.ScreenToWorldPoint(Input.GetTouch(i).position);
TouchCanceled(pos);
return;
}
++i;
}
}
float timeDelta;
float velocity;
float targetPositionY;
bool isSwiping = false;
void UpdateCamMovement()
{
if (!isSwiping)
{
float moveY = velocity * 0.9f;
float newposy = transform.position.y + moveY;
velocity = moveY;
if (newposy < minCam)
{
newposy = minCam;
}
else if (newposy > maxCam)
{
newposy = maxCam;
}
transform.position = new Vector3(transform.position.x, newposy, transform.position.z);
BackButton.transform.position = new Vector3(BackButton.transform.position.x, transform.position.y + backButtonDisplacement, BackButton.transform.position.z);
LoadingChange.transform.position = new Vector3(LoadingChange.transform.position.x, transform.position.y + backButtonDisplacement -1, LoadingChange.transform.position.z);
//
// SocialButton.transform.position = new Vector3(SocialButton.transform.position.x, transform.position.y + SocialButtonDisplacement, SocialButton.transform.position.z);
// float newBgRate = (newposy - minCam) / (maxCam - minCam);
// BackgroundContainer.transform.position = new Vector3(BackgroundContainer.transform.position.x, newposy + (maxBg - minBg) * newBgRate, BackgroundContainer.transform.position.z);
}
}
// Handle TouchEvent
void TouchBegan(Vector3 touch)
{
MouseStartPosY = touch.y;
CamStartPosY = transform.position.y;
isSwiping = true;
}
void TouchMoved(Vector3 touch)
{
float newposy = CamStartPosY - (touch.y - MouseStartPosY) / Screen.height * 10;
if (newposy < minCam)
{
newposy = minCam;
}
else if (newposy > maxCam)
{
newposy = maxCam;
}
transform.position = new Vector3(transform.position.x, newposy, transform.position.z);
BackButton.transform.position = new Vector3(BackButton.transform.position.x, transform.position.y + backButtonDisplacement, BackButton.transform.position.z);
// SocialButton.transform.position = new Vector3(SocialButton.transform.position.x, transform.position.y + SocialButtonDisplacement, SocialButton.transform.position.z);
// float newBgRate = (newposy - minCam) / (maxCam - minCam);
// BackgroundContainer.transform.position = new Vector3(BackgroundContainer.transform.position.x, newposy + (maxBg - minBg) * newBgRate, BackgroundContainer.transform.position.z);
}
void TouchEnded(Vector3 touch)
{
isSwiping = false;
if (Mathf.Abs(transform.position.y - CamStartPosY) > 1)
velocity = (transform.position.y - CamStartPosY > 0) ? 0.2f : -0.2f;
else
velocity = 0;
}
void TouchCanceled(Vector3 touch)
{
}
#endregion
No comments:
Post a Comment