1
아래의 스크립트를 사용하여 고정 된 영역 내에서 게임 개체를 위/아래 및 왼쪽/오른쪽으로 드래그하는 방법을 사용하고 있습니다.이 방법은 편집기 및 모바일 스 와이프에서도 잘 작동하지만 느린 속도로 느려질 수는 없습니다. 속도 변수를 사용합니다. 내가 어떻게 이럴 수 있니? 나는 개체를 끌 수있는 속도를 제어 할 수 있기를 원합니다.GameObject 끌기
using UnityEngine;
using System.Collections;
public class drag : MonoBehaviour {
public float maxXValue = 9f;
Vector3 dist;
float posX;
float posY;
void OnMouseDown(){
dist = Camera.main.WorldToScreenPoint(transform.position);
posX = Input.mousePosition.x - dist.x;
posY = Input.mousePosition.y - dist.y;
}
void OnMouseDrag(){
Vector3 curPos = new Vector3(Input.mousePosition.x - posX, Input.mousePosition.y - posY, dist.z);
Vector3 worldPos = Camera.main.ScreenToWorldPoint(curPos);
if (GameManager.instance.gameStart == false) {
worldPos.x = Mathf.Clamp (worldPos.x, -5f, 5f);
worldPos.y = Mathf.Clamp (worldPos.y, -13.2f, -13.2f);
} else {
worldPos.x = Mathf.Clamp (worldPos.x, -maxXValue, maxXValue);
worldPos.y = Mathf.Clamp (worldPos.y, -17.2f, -13.2f);
}
transform.position = worldPos;
}
}
고마워요, 그게 내가 원하는대로 작동합니다. – Kaz
어떻게하면 Y 축에서만 속도를 제어 할 수 있습니까? – Kaz
축 별 임시 값을 가져 와서 Mathf.Lerp를 사용하여 필요한 속도에 따라 값을 변경할 수 있습니다. 그런 다음 새 Vector를 만들고 transform.position에 할당합니다. – ZayedUpal