【发布时间】:2017-08-21 09:19:07
【问题描述】:
我正在努力做到这一点,所以当我到达地图的右侧或左侧边缘时,相机会锁定,但仍然允许我的玩家向前移动到边缘,直到我转身。 我知道我需要使用 mathf.clamp 但我不确定如何将它应用到我当前的代码中。谢谢。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class walkScript : MonoBehaviour {
public float speed = 1.5f;
private Vector3 target;
private Vector3 lastTarget;
private Animator animator;
private Vector3 camTarget;
public GameObject cameraMain;
void Start () {
target = transform.position;
camTarget = cameraMain.transform.position;
animator = GetComponent<Animator> ();
}
void Update () {
if (Input.GetMouseButtonDown(0)) {
target = Camera.main.ScreenToWorldPoint(Input.mousePosition);
target.z = transform.position.z;
target.y = transform.position.y;
camTarget = Camera.main.ScreenToWorldPoint(Input.mousePosition);
camTarget.z = cameraMain.transform.position.z;
camTarget.y = cameraMain.transform.position.y;
flipCharacter ();
}
transform.position = Vector3.MoveTowards(transform.position, target, speed * Time.deltaTime);
cameraMain.transform.position = Vector3.MoveTowards(cameraMain.transform.position, camTarget, speed * Time.deltaTime);
lastTarget.x = target.x;
}
private void flipCharacter()
{
if (lastTarget.x > target.x) {
animator.transform.Rotate(0, 180, 0);
} else if (lastTarget.x < target.x) {
animator.transform.Rotate(0, 180, 0);
}
}
}
【问题讨论】: