【问题标题】:How do I disable a script for a few seconds如何禁用脚本几秒钟
【发布时间】:2015-11-09 23:07:48
【问题描述】:

一旦它与对象标签“有弹性的对象”发生冲突,有人可以告诉我如何禁用该脚本几秒钟。

这是脚本:

using UnityEngine;
using System.Collections;

public class playermovement : MonoBehaviour {

    public float speed = 15f;
    private Vector3 target;

    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);

    }

}

【问题讨论】:

  • 禁用是什么意思?停止更新?或停止调用:transform.position = Vector3.MoveTowards (transform.position, target, speed * Time.deltaTime);
  • 嗯,我的意思是完全停止这个脚本,但只有几秒钟可能像 5-6 秒

标签: c# unity3d 2d


【解决方案1】:

只需在脚本中添加一个布尔值,例如

bool StopForAWhile = false;

void Update(){
    if(StopForAWhile){
    //the inside of your update
    }
}

然后将此 bool 设置为 true,无论您想要多长时间,如果您希望它再次移动,则设置为 false。

【讨论】:

  • 另外,如果您知道要停止它多长时间,您可以使用Invoke 创建一个在时间过去后重新启动脚本的函数。 public void StopScript(float delay) { StopForAWhile = true; Invoke("RestartScript", delay); } public void RestartScript() { StopForAWhile = false; }
猜你喜欢
  • 2021-11-05
  • 1970-01-01
  • 2015-12-29
  • 1970-01-01
  • 2018-09-24
  • 1970-01-01
  • 2018-06-21
  • 2020-05-03
  • 1970-01-01
相关资源
最近更新 更多