我创建了一个边界来阻止我的玩家离开游戏中的某个区域,我通过在场景中添加一个立方体创建了这个边界,并创建了一个脚本,使立方体适应相机大小的一半。宽度(更新中)。在我的播放器脚本中,我有一个阻止我的播放器离开立方体边界的功能。即使我调整编辑器的宽度,它也能完美地工作,然而,当我在游戏中玩游戏时,边界的宽度最大化而不是将边界减半到我喜欢的尺寸。我担心这个,因为,我想把我的游戏放在手机上,我不确定播放中的最大化是否适用于移动尺寸,或者在正常尺寸的编辑器中播放是否更能激活到正常的Android手机?谢谢!
边界脚本:
public BoxCollider2D cube;
void Start()
{
cube.size = new Vector2 (240, 0.4f); //240
}
void Update()
{
float height = Camera.main.orthographicSize * 1.3f;
float width = height * Screen.width/ Screen.height; // basically height * screen aspect ratio
cube.transform.localScale = new Vector3(width/10f, width/11f, width/10f);
Debug.Log (width);
}
NEW UPDATE
玩家的剧本:
public BoxCollider2D cube;
public float moveSpeed = 3f;
void Update () {
if (Input.GetMouseButton(0)) {
var targetPos = Camera.main.ScreenToWorldPoint(Input.mousePosition);
targetPos.z = transform.position.z;
transform.position = Vector3.MoveTowards(transform.position, targetPos, moveSpeed * Time.deltaTime);
}
void LateUpdate () {
var left = Camera.main.ViewportToWorldPoint (Vector3.zero).x;
var right = Camera.main.ViewportToWorldPoint (Vector3.one).x;
float x = transform.position.x;
if (transform.position.x <= left + cube.bounds.extents.x) {
x = left + cube.bounds.extents.x;
} else if (transform.position.x >= right - cube.bounds.extents.x) {
x = right - cube.bounds.extents.x;
}
transform.position = new Vector3 (x, transform.position.y, transform.position.z);
}