1395/5/3، 05:20 عصر
سلام
رو یک پروزه آزمایشی قابلیت زوم و اسکرول رو پیاده کردم (touch) با این کد:
حالا من چند تا گیم آبجکت به عنوان پس زمینه بازی دارم که خب قائدتا نباید این قابلیت زوم روی اونها عمل کنه.
ولی خب این کد زوم رو به main camera دادم و برای همه آبجکت ها عکل میکنه.
ممنون میشم راهنمایی کنید... هرچی سرچ زدم چیزی پیدا نکردم.
انجمن های بازی سازی دیگه هم که ماشاله اصلا جواب نمیدن.
رو یک پروزه آزمایشی قابلیت زوم و اسکرول رو پیاده کردم (touch) با این کد:
کد:
using UnityEngine;
using System.Collections;
public class TouchCameraControl : MonoBehaviour {
public float moveSensitivityX = 1.0f;
public float moveSensitivityY = 1.0f;
public float orthoZoomSpeed = 0.5f;
public float minZoom = 1.0f;
public float maxZoom = 20.0f;
public bool updateZoomSensitivity = true;
public bool invertMoveX = false;
public bool invertMoveY = false;
private Camera _camera;
void Start () {
_camera = Camera.main;
}
void Update ()
{
if (updateZoomSensitivity) {
moveSensitivityX = _camera.orthographicSize / 5.0f;
moveSensitivityY = _camera.orthographicSize / 5.0f;
Touch[] touches = Input.touches;
if (touches.Length > 0) {
//single touch move
if (touches.Length == 1) {
if (touches[0].phase == TouchPhase.Moved) {
Vector2 delta = touches [0].deltaPosition;
float posittionX = delta.x * moveSensitivityX * Time.deltaTime;
posittionX = invertMoveX ? posittionX : posittionX * -1;
float posittionY = delta.y * moveSensitivityY * Time.deltaTime;
posittionY = invertMoveY ? posittionY : posittionY * -1;
_camera.transform.position += new Vector3 (posittionX, posittionY, 0);
}
}
//double touch (zoom)
if (touches.Length == 2) {
Touch touchOne = touches [0];
Touch touchTwo = touches [1];
Vector2 touchOnePrevpos = touchOne.position - touchOne.deltaPosition;
Vector2 touchTwoPrevPos = touchTwo.position - touchTwo.deltaPosition;
float prevTouchDeltaMag = (touchOnePrevpos - touchTwoPrevPos).magnitude;
float touchDeltaMag = (touchOne.position - touchTwo.position).magnitude;
float deltaMagDiff = prevTouchDeltaMag - touchDeltaMag;
_camera.orthographicSize += deltaMagDiff * orthoZoomSpeed;
_camera.orthographicSize = Mathf.Clamp (_camera.orthographicSize, minZoom, maxZoom);
}
}
}
}
}
حالا من چند تا گیم آبجکت به عنوان پس زمینه بازی دارم که خب قائدتا نباید این قابلیت زوم روی اونها عمل کنه.
ولی خب این کد زوم رو به main camera دادم و برای همه آبجکت ها عکل میکنه.
ممنون میشم راهنمایی کنید... هرچی سرچ زدم چیزی پیدا نکردم.
انجمن های بازی سازی دیگه هم که ماشاله اصلا جواب نمیدن.