- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
一旦 object1 和 object2 达到彼此之间的特定距离,我们如何才能阻止 Mathf.PingPong 速度增加?
float min;
float max;
// Update is called once per frame
void Update () {
min = object1.position.x;
max = object2.position.x;
transform.position = new Vector3(Mathf.PingPong(Time.time*2f, max-min)+min, transform.position.y, transform.position.z);
}
最佳答案
基本上,在像 Unity 这样的基于帧的系统中,“2f”是此类语句中的“速度”。
在 PingPong 中,“2”是ping 和 pong 的时间
正如 Gunnar 解释的那样,如果您担心对象的*米每秒,则必须这样做
float desiredMPS = 10f; // you want the object to move at 10 mps
float knownDistance = max - min;
float howManySecondsForLoop = knownDistance / desiredMPS;
您可以使用“howManySecondsForLoop”作为 PingPong 的“2”。
一般来说,在特定的时间或地点改变它,
public float pongTime = 2.5f // .. or whatever as above
Vector3 p = transform.position;
float newX = Mathf.PingPong(Time.time*pongTime,max-min)+min;
p.x = newX;
transform.position = p;
并尝试自己更改“pongTime”。 (只需在编辑器中执行即可。)
在代码中,您可能会使用“Invoke”或类似的方法来更改它。
Invoke( "InThreeSecondsSlowItDown", 3f);
private void InThreeSecondsSlowItDown()
{
pongTime = .75f; // or calculate as above
}
或者你可以这样做
if ( .. distance .. < .. width of enemy *2 .. )
pongTime = pongTime * .1f; // or calculate as above
享受
简而言之,试试这个
float desiredMPS;
// you want the object to move at that many meters per second
// at first try say "3" in the Editor
void Update()
{
float knownDistance = max - min;
float howManySecondsForLoop = knownDistance / desiredMPS;
public float pongTime = howManySecondsForLoop;
Vector3 p = transform.position;
float newX = Mathf.PingPong(Time.time*pongTime,max-min)+min;
p.x = newX;
}
关于c# - Mathf.PingPong 速度问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35912458/
我试图让下面的程序扫描一个字符串类型的值,如果它等于“Ping”,程序将输出“Pong!”。 不幸的是,我不知道如何让扫描器读取字符串类型并将其与“Ping”条件进行比较。 package exper
一旦 object1 和 object2 达到彼此之间的特定距离,我们如何才能阻止 Mathf.PingPong 速度增加? float min; float max; // Update is ca
我正在尝试学习多线程的基本概念。 为什么我的乒乓程序只打印 Ping0 和 Pong0,为什么 notify() 没有启动处于等待状态的 Ping 线程? 公共(public)类 PingPong 实
Unity 文档 Mathf.PingPong说: PingPongs the value t, so that it is never larger than length and never sm
我想知道为什么我在项目中添加 pingpong sky 模块时会得到这样的东西 我想,我已经按照 pingpong sky 安装中的所有说明进行操作 当我在 cmd 中创建模块 Auth 时,我得到了
我正在开发模块化项目 laravel 5.1使用 pingpong package.Which 给我的项目结构如下 laravel-app/ app/ bootstrap/ v
我已经通过 1 个信号和 1 个管道在 C 上编写了 PingPong,因此我需要将 pid1 发送到 son2 和 pid2 到 son1,其中 pid1、pid2 是 son1、son2 #inc
我是一名优秀的程序员,十分优秀!