小编Kan*_*bot的帖子

从编辑器设置 UnityEvents 并使它们调用正确的参数

我与UnityEvents工作作为说明这里。那里写着

在 Inspector 中配置 UnityEvent 时,支持两种类型的函数调用:

静止的。静态调用是预配置的调用,具有在 UI 中设置的预配置值。这意味着当回调被调用时,目标函数将使用已输入 UI 的参数调用。

动态的。使用从代码发送的参数调用动态调用,并且这绑定到正在调用的 UnityEvent 类型。UI 过滤回调,只显示对 UnityEvent 有效的动态调用。

所以我得到一个带有参数的 UnityEvent

 public class UnityEventFloat : UnityEvent<float>
    {
    }
public UnityEventFloat OnUpdateEvent;
Run Code Online (Sandbox Code Playgroud)

这在检查器中显示为

输入到 UnityEvent 的回调

如您所见,我setWaitTime向 UnityEvent添加了一个回调函数。函数有这个形状 public void setWaitTime(float t)

之后 UnityEvent 将在代码中被调用为

OnUpdateEvent.Invoke(aValue);
Run Code Online (Sandbox Code Playgroud)

尝试所有这些,它不能很好地工作,因为调用时函数使用作为参数 0(如在检查器中)我想要的是它使用参数调用函数aValue(这是代码中的内部变量)

我怎样才能做到这一点?我想我不太理解文档中的引用。我的情况就像“静态”一样,我要求它像“动态”一样工作


编辑2:

我必须解决这个问题,所以我要把它写在一个答案中


编辑:(旧)我尝试了建议的答案,我得到了这个 在此处输入图片说明 我不知道这如何解决问题(注意现在参数是脚本。但这是在同一个脚本中(SliderGestureControl))

unity-game-engine

6
推荐指数
1
解决办法
4102
查看次数

运行 prometheus 时 CollectorRegistry 中出现重复的时间序列 (python)

我正在尝试遵循客户端 python 项目的自述文件。所以我有以下代码

from prometheus_client import start_http_server, Summary
import random
import time

# Create a metric to track time spent and requests made.
REQUEST_TIME = Summary('request_processing_seconds', 'Time spent processing request')

# Decorate function with metric.
@REQUEST_TIME.time()
def process_request(t):
    """A dummy function that takes some time."""
    time.sleep(t)

if __name__ == '__main__':
    # Start up the server to expose the metrics.
    start_http_server(8000)
    # Generate some requests.
    while True:
        process_request(random.random())
Run Code Online (Sandbox Code Playgroud)

我仍在尝试了解如何在这里使用普罗米修斯,但我的问题有点不同。我正在使用 anaconda,并且创建了 conda 环境。在这个环境中,我安装了spyder作为我的IDE。所以我把这段代码放在一个文件中并运行它。

第一次没有问题(我可以用普罗米修斯做一些监控,但那是另一个故事了)。但是,当我想停止此操作时,我按 Ctrl-C 并按预期程序退出。

但是,如果我第二次运行它,我会收到以下错误:

Traceback …
Run Code Online (Sandbox Code Playgroud)

python spyder prometheus

6
推荐指数
1
解决办法
2万
查看次数

最初隐藏痕迹

通过阅读文档,我知道最初可以隐藏一些痕迹。

文档给了我们这个例子

import plotly.graph_objects as go

fig = go.Figure()

fig.add_trace(go.Scatter(
    x=[1, 2, 3, 4, 5],
    y=[1, 2, 3, 4, 5],
))

fig.add_trace(go.Scatter(
    x=[1, 2, 3, 4, 5],
    y=[5, 4, 3, 2, 1],
    visible='legendonly'
))

fig.show()
Run Code Online (Sandbox Code Playgroud)

那很好。但是,我正在创建一个包含循环中完成的多个散点图的绘图,因此我需要设置一些可见的和一些不可见的。对于不可见的来说是这样visible='legendonly',但是对于可见的我能写什么呢?(我知道不写任何东西可以解决问题,但由于它将成为一个循环,因此最好将其设置为某些内容。

plotly

6
推荐指数
1
解决办法
3991
查看次数

编写可以等待的异步进程

我一直在研究如何将我的(同步)算法转换为异步算法.(TAP)首先,为了清楚起见,这个问题不是关于"Async和Await做什么"(我已经阅读了Stephen Cleary的优秀帖子,例如Async和Await(如果有人有兴趣阅读链接 - 它是非常翔实的)

我还已经阅读了"C#简而言之"的并发章节.

这个问题不是关于异步函数如何使用等待来调用函数.我已经知道了.

不幸的是,在我阅读的几乎所有内容中,它await Task.Delay(10)都用于"创建异步函数".例如:

public async Task<int> GetResult()
{
   int result= await GiveMeTheInt();

}
public async Task<int> GiveMeTheInt() //<--is async needed here? (oops! I just realize it is...
{
  await Task.Delay(100);
  return(10);
}
Run Code Online (Sandbox Code Playgroud)

在这个例子中,例如我已经理解了GetResult()函数中异步等待的魔力,但实现GiveMeTheInt()并不是很有用.(它们只是将一个Delay作为一个通用异步函数放在那里)

所以我的问题是关于"GiveMeTheInt"类型的问题(不是那些称之为问题的人).

这个问题

如果我有一个函数编写到目前为止同步的函数,我怎么能将它转换为异步使用?


这不是一个重复的问题,我发现最接近的是转向同步方法异步,其中海报被告知使用已经存在的方法的异步版本.就我而言,这不存在.

我的算法主要包括图像处理,因此实质上是扫描大数组并改变每个像素的值.就像是

void DoSomethingToImage(int[,] Image)
{
  for(int i=0;i<width;i++)
    for(int j=0;j<height;j++)
     {
       Image[i,j]=255;
     }
}
Run Code Online (Sandbox Code Playgroud)

(这是一个虚构的例子,当然操作不同)

我得到的最接近的答案是将函数放在一个Task.Run() 但我不确定这是否是这样做的方法.

任何帮助将不胜感激

c# asynchronous async-await

5
推荐指数
1
解决办法
129
查看次数

使用 github 处理 excel 文件

作为对这个问题的一种跟进,我想问一下二进制文件(例如我们的 excel 文件)和版本控制。

假设我想使用 github 来存储一个编程项目。没问题,因为大多数文件都是文本(无论语言如何)。

但我也有文档。如果我把它放在github项目的文件夹中呢?(我见过这样做的项目)

我读过 git 对此没有好处,那么我如何为 excel 文件进行版本控制?

excel github

5
推荐指数
2
解决办法
1万
查看次数

更改HttpClient的基地址

在编写使用HttpClient的应用程序时,我使用与此帖相同的方法,换句话说,我不使用使用静态HttpClient.当我只想与一台服务器通信时,我没有遇到任何问题.(我将IP地址设置为BaseAddress并继续)

现在我遇到与此问题相同的问题,即在开始使用HttpClient后无法更改BaseAddress.

该问题的答案回应了一个无法完成的解释.您无法更改BaseAddress.

所以,如果我们想要更改ip地址以与其他服务器通信,我的问题(与链接的不同,所以不重复)是该怎么办?

我们应该实例化另一个HttpClient吗?(不,我们不打算使用using)我们如何正确地从这里开始?

c# dotnet-httpclient

5
推荐指数
1
解决办法
2296
查看次数

我应该使用的正确 core.autocrlf 设置是什么?

理论上来说,在 Windows 机器上工作时,人们应该使用core.autocrlfset 为 true。

我的 Windows 机器 git 配置设置是core.autocrlf=true

然而,当我克隆 gitlab 存储库时,我可以看到一些 sh ​​文件的行已在\r.

(我通过这样做来做到这一点cat -A thefile.sh)。

当我将这些文件复制到 Linux 环境并尝试运行它们时,这会产生各种问题。

作为参考,我在 Linux 机器(未设置该配置)中克隆了相同的 gitlab 存储库,并且 sh 文件\r中没有。

我的问题是,我该如何解决这个问题?

设置core.autocrlf输入并再次克隆存储库会有帮助吗?这些是什么时候\r引入的?

git clone newline git-config

5
推荐指数
1
解决办法
4262
查看次数

Docker run 使用“nogroup”的用户“nobody”映射卷

到目前为止我还没有遇到这个问题。我正在远程工作站中运行容器映像。与正常情况不同的是,该工作站没有连接到互联网,我必须手动启动 docker deamon。(以供参考)

之后运行我尝试做的容器

docker run -it -t --rm --gpus all --env CUDA_VISIBLE_DEVICES -v "/mnt/disco/projects/ThisProject/:/home/ThisProject/" -w "/
home/ThisProject/"  container_image:latest /bin/bash 
Run Code Online (Sandbox Code Playgroud)

当我这样做时,我使用 root 用户进入了文件夹上的容器/home/ThisProject,但我不能在这里使用 ls 。我这样做了cd ..,并且ls -l我可以看到 ThisProject 文件夹中有这个

drwxrws--- 7 nobody nogroup 4096 Jul 21 07:30 ThisProject
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,主人是“无名之辈”

我可以做什么来纠正这个问题?

docker

5
推荐指数
1
解决办法
851
查看次数

没有张量板图

我正在阅读一本关于 Tensorflow 的书,我找到了这段代码:

from __future__ import absolute_import
from __future__ import division
from __future__ import print_function

import tensorflow as tf

const1 = tf.constant(2)
const2 = tf.constant(3)
add_opp = tf.add(const1,const2)
mul_opp = tf.mul(add_opp, const2)

with tf.Session() as sess:
    result, result2 = sess.run([mul_opp,add_opp])
    print(result)
    print(result2)

    tf.train.SummaryWriter('./',sess.graph)
Run Code Online (Sandbox Code Playgroud)

所以它非常简单,没什么特别的,它应该产生一些可以用张量板可视化的输出。

所以我运行脚本,它打印结果,但显然 SummaryWriter 没有产生任何结果。

我跑tensorboard -logdir='./',当然没有图表。我可能做错了什么?

还有你如何终止张量板?我试过 ctrl-C 和 ctrl-Z 但它不起作用。(我也使用日文键盘,所以没有反斜杠以防万一)

tensorflow tensorboard

4
推荐指数
1
解决办法
6183
查看次数

带有命令的 Tkinter 复选框

我想要一些简单的帮助:一个 tkinter 复选框,它确实附加了一个命令<--这个简单的例子总是被提及,但从未在网络教程中显示过。

我有:

from tkinter import *

def activateMotors(active):
    scale.config(state=active)


root = Tk()
root.wm_title('Servo Control')
motorsOn= IntVar()
motorsCheck=Checkbutton(root,text="Motors ON(checked)/OFF(unchecked)", variable=motorsOn, command=activateMotors)
motorsCheck.pack()
scale = Scale(root, from_=0, to=180, 
              orient=HORIZONTAL,label="Motor #",state=DISABLED)
scale.pack()
root.mainloop()
Run Code Online (Sandbox Code Playgroud)

这不起作用。确定窗口出现,但是当我点击复选框时,我得到“TypeError activateMotors() missing 1 required positional argument 'active' ”

任何人都可以纠正这一点,以便我们可以有一个带有命令的操作复选框示例吗?

python checkbox tkinter

4
推荐指数
1
解决办法
9157
查看次数