【发布时间】:2015-11-21 22:22:02
【问题描述】:
我的播放器附加了一个脚本,其中包含IEnumerator OnTriggerExit2D。在其中有一个等于 0 的 time.time scale ,这会使整个游戏在与标记对象碰撞后暂停。我是这样设置的,这样我的播放器就会在碰撞后的某个时间停止(我使用了yield return new WaitForSeconds)。
我的问题是;有没有办法让我的播放器不受time.time scale 的影响但在发生碰撞后仍然停止,所以我的播放器在整个游戏仍然暂停时仍然可以运行。这是我的脚本:
public class Player : MonoBehaviour {
public float speed = 15f;
private Vector3 target;
public Player playerMovementRef;
void Start () {
target = transform.position;
}
void Update () {
if (Input.GetMouseButtonDown(0)) {
target = Camera.main.ScreenToWorldPoint(Input.mousePosition);
target.z = transform.position.z;
}
transform.position = Vector3.MoveTowards(transform.position, target, speed * Time.deltaTime);
}
IEnumerator OnTriggerExit2D (Collider2D other){
if (other.tag == "Bouncy object")
playerMovementRef.enabled = false;
yield return new WaitForSeconds (0.35f);
Time.timeScale = 0f;
playerMovementRef.enabled = true;
}
}
【问题讨论】: