【发布时间】:2022-10-05 15:26:19
【问题描述】:
[更新] 这是我正在使用的代码。这是我的更新方法中的 if(Enemy != Chasing) 中的一个。
此代码指定让敌人选择 90、180、-90、360 的设定旋转,然后朝该方向移动一段时间。然后再做一遍。但是当我运行它时,它所做的就是
private IEnumerator RomeCO() {
int MovePick = Random.Range(1, 4);
yield return new WaitForSecondsRealtime(1)
switch (MovePick)
{
case 1:
// TODO
// turn / face 0 for up
Rb.SetRotation(0);
yield return new WaitForSecondsRealtime(1);
// give movement in that dirrection
transform.Translate(new Vector2(0f, 1f) * EnemySpeed * Time.deltaTime); // up
break;
case 2:
// TODO
// turn / face 180 for down
Rb.SetRotation(180);
yield return new WaitForSecondsRealtime(1);
// give movement in that dirrection
transform.Translate(new Vector2(0f, -1f) * EnemySpeed * Time.deltaTime); // down
break;
case 3:
// TODO
// turn / face 90 for left
Rb.SetRotation(90);
yield return new WaitForSecondsRealtime(1);
// give movement in that dirrection
transform.Translate(new Vector2(-1f, 0f) * EnemySpeed * Time.deltaTime); // left
break;
case 4:
// TODO
// turn / face -90 for right
Rb.SetRotation(-90);
yield return new WaitForSecondsRealtime(1);
// give movement in that dirrection
transform.Translate(new Vector2(1f, 0f) * EnemySpeed * Time.deltaTime); // right
break;
}
GetComponent<Rigidbody2D>().velocity = Vector2.zero;
GetComponent<Rigidbody2D>().angularVelocity = 0.0f;
}
-
使用 RectTransform 移动 2D 对象(图像、按钮等)。
var rectTr = GetComponent<RectTransform>();并使用anchoredPosition移动。 -
所以你的说法也适用于二维精灵?
-
好的,所以我尝试了它并且它有效,但我尝试使用翻译的原因是它是从一个点到另一个点的平稳过渡。我怎样才能添加同样的效果?
-
RectTransform 还有一个 Translate 函数。
-
我该如何使用它?我一直在努力。。