【问题标题】:Updating the Computer Player action turn by turn in Unity在 Unity 中轮流更新 Computer Player 动作
【发布时间】:2017-02-13 16:05:19
【问题描述】:

目前我正在开发棋盘游戏。有四个玩家,一个是实际的人类玩家,其余三个是电脑玩家或简单的机器人。

当轮到人类玩家掷骰子时。他可以抛出和更新比分和其他事情。

但是当轮到电脑玩家时,我希望一切都得到更新,例如慢慢地掷骰子更新分数,以便玩家可以看到它。

我现在做的是正常的,在人类玩家回合后,计算机玩家回合以毫秒为单位更新。

怎么做才能慢慢更新,让玩家看到。

【问题讨论】:

  • 在电脑播放器的更新功能中添加计时器和延迟,以分解功能,以便您可以看到零件。您还可以添加文本或视觉指示符来帮助您了解正在发生的事情。
  • 这是一个相当广泛的问题,因此可能不适合本网站的问答格式,但总的来说,我建议研究使用定时器/延迟的设计,例如协程(可以执行的函数多帧)和可能的补间库(用于简单动画)。

标签: unity3d


【解决方案1】:

这是一个非常笼统的问题,没有一些代码很难回答,但您可以研究两个主要选项。

1) 将您的 AI 方法转换为协程,然后在其间添加一些“WaitForSeconds”。

 IEnumerator YourMethod(){
     // Do stuff
     yield return new WaitForSeconds(time);
     // Do stuff
     yield return new WaitForSeconds(time);
     // Do stuff
     yield return new WaitForSeconds(time);

2) 将您的方法分解为多个方法,并在最后使用 Invoke 将调用链式调用

void YourMethod(){
  // Do stufff
  Invoke("YourMethod2", time);

void YourMethod2(){
  // Do stuff
  Invoke("YourMethod3", time);

【讨论】:

    猜你喜欢
    • 2015-02-07
    • 1970-01-01
    • 2022-11-23
    • 1970-01-01
    • 2012-09-26
    • 1970-01-01
    • 1970-01-01
    • 2020-08-01
    • 1970-01-01
    相关资源
    最近更新 更多