小编Ben*_*ard的帖子

Unity:在加载新场景时运行Coroutines会被破坏吗?

如果你在附加到给定场景中的对象的脚本中运行了一个协同程序,当该场景结束时,协同程序是否会被终止/销毁?...即使协程包含例如无尽的While循环?


例如,如果我将以下协程附加到场景中的对象:

IEnumerator SampleCoroutine()
{
    while (true) {
        yield return new WaitForSeconds(1.0f);
    }
    yield return null;
}
Run Code Online (Sandbox Code Playgroud)

...当加载一个新场景时,如果没有附加到该对象的脚本包含" DontDestroyOnLoad(...)",那么协程是否仍会在新加载的场景中执行?

询问的原因:我需要知道是否需要保留所有活动协同程序的列表,以便我可以在每次更改场景后结束它们.我不希望性能降低,因为使用了更多的场景.

c# ienumerable coroutine unity-game-engine scene

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

WPF:有没有办法覆盖ControlTemplate的一部分而不重新定义整个样式?

我正在尝试设置WPF xctk:ColorPicker.我想更改下拉视图和文本的背景颜色,而不重新定义整个样式.

我知道ColorPicker包含例如名为"PART_ColorPickerPalettePopup"的部件.有没有办法,我可以直接在我的风格参考本部分,比如提供一个新的背景颜色的方法

我想避免重新定义"PART_ColorPickerPalettePopup"的所有其他属性.

链接到我正在描述的ColorPicker

c# wpf styles color-picker wpf-extended-toolkit

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

选择后Javafx ComboBox消失的项目

我创建了(JavaFX)组合框,并在其中填充了由HBoxes制成的可观察列表,以便可以在每个列表单元格中显示带有一些文本的图像。

这显示得很好,除了事实是,只要您选择列表中的一项,它就会消失。选择每个项目后,它将根本不会渲染任何项目。(您仍然可以通过单击以前的位置来选择它们。

您知道我该如何纠正吗?

在此处输入图片说明 在此处输入图片说明

我的部分代码显示在下面:

public class IconListComboBox {

Group listRoot = new Group();
VBox mainVBox = new VBox();
ComboBox selectionBox = new ComboBox();
List<HBox> list = new ArrayList<HBox>();
ListView<HBox> listView = new ListView<HBox>();
ObservableList<HBox> observableList;



public IconListComboBox(int dimensionX, int dimensionY, ArrayList<String> names, ArrayList<ImageView> icons)
{

    //VBox.setVgrow(list, Priority.ALWAYS);
    selectionBox.setPrefWidth(dimensionY);
    selectionBox.setPrefHeight(40);

    for(int i = 0; i < names.size(); i++)
    {
        HBox cell = new HBox();
        Label name = new Label(names.get(i));
        Label icon = new Label();
        icon.setGraphic(icons.get(i));
        name.setAlignment(Pos.CENTER_RIGHT);
        icon.setAlignment(Pos.CENTER_LEFT); …
Run Code Online (Sandbox Code Playgroud)

icons combobox javafx image list

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

(Unity) 将轮廓添加到 Alpha Cutout Shader

我有一个非常简单的剪切着色器,用于在 3D 空间中显示图标(见下文)。

我想“以编程方式”添加遵循 alpha 轮廓的轮廓/笔划,并具有用户定义的厚度和颜色。

期望效果的视觉描述

(左):我目前拥有的 - 一个 alpha 剪切着色器(右):我想要的 - 围绕剪切的轮廓 请注意:这些不是精灵,它们是 3D 平面

请问我该怎么做呢?

Shader "Custom/Transparent/CutoutEmissive" {
Properties {
    _Color ("Main Color", Color) = (1,1,1,1)
    _MainTex ("Base (RGB) Trans (A)", 2D) = "white" {}
    _Cutoff ("Alpha cutoff", Range(0,1)) = 0.5
    _EmissiveAmount ("Emissive Amount", Range(0,1)) = 0.5
    _Outline ("Outline Thickness", Range(0,10)) = 0.0
}

SubShader {
    Tags {"Queue"="AlphaTest" "IgnoreProjector"="True" "RenderType"="TransparentCutout"}
    LOD 200

CGPROGRAM
#pragma surface surf Lambert alphatest:_Cutoff

sampler2D _MainTex;
fixed4 _Color;
float _EmissiveAmount;
float _Outline;
struct Input …
Run Code Online (Sandbox Code Playgroud)

shader alpha outline unity-game-engine stroke

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

Unity:如何使用具有多线程图形作业的Camera.Render的所有CPU内核?优化 - 不工作?

如何使用多线程图形作业优化?

我有一个项目(较少的游戏,更多的是一个应用程序),它在一个场景中使用了数十个摄像机,所有这些都是一次渲染.(不要问为什么,必须这样!)

毋庸置疑,在运行应用程序时,由于渲染管道是单线程的,因此几乎可以实现一个CPU内核.结果,它降低了帧速率.(GPU,内存等远低于100%负载 - CPU是这里的瓶颈)

看到Unity有一个名为"图形作业(实验)"的选项让我感到非常欣慰,该选项专门用于在多个线程之间拆分渲染,因此,多个核心.

但是,启用此选项并将DirectX12设置在图形API列表的顶部,我希望现在可以充分利用CPU,即所有CPU内核都可以进行主动渲染.然而,似乎仍然是应用程序仍然只利用我的CPU潜力的40%,同时提供低帧速率.当然,它应该只有在最大化CPU时才会降低帧速率?似乎并没有以不同的方式使用各个核心.为什么我不能通过利用接近100%的CPU上的所有内核(总共包括正在运行的任何其他程序)来最大化输出帧速率?

基本上我想知道如何让Unity充分利用我所有的CPU核心,以便尽可能高的帧速率,同时在我的场景中同时拥有尽可能多的摄像头...... ...我想想图形工作会解决这个问题?...除非我错误地使用它们或没有使用正确的设置组合?

顺便说一句,我的CPU是i7-4790 @ 3.6ghz,我的GPU是使用DX12的980Ti.32GB的RAM.

cpu performance multithreading rendering unity-game-engine

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

如何在RaphaelJS中设置文本字体

我有一个小的RaphaelJS脚本,它使用Text在屏幕上显示文本.此文本是动态的 - 它经常更新.

我想设置文本的字体.我已经下载了我喜欢的Cufon .js字体文件,并使用下面的代码来设置字体.除了,它不起作用!

...整个字体都没有变化.设置颜色,以及字体大小,位置等.但不是实际的字体本身.

如果我打印文本而不是使用文本字体工作正常.但我不想这样做 - 它需要是动态的.

var text = paper.text(200,245,"--:--");

var paper = new Raphael( 0, 0, 600, 400) ;
var font = paper.getFont("FontName");
text.attr({ "font-size": 25, font: "FontName", "font-weight": 400, fill: lcdDisplayColour });

function updateText()
{
    /**
    .
    .
    .
    **/

    var newText = "some new text";
    text.attr({text: ""+dClockText});

}
Run Code Online (Sandbox Code Playgroud)

在HTML文件中我有:

<script src="raphael-min.js" type="text/javascript"></script>
<script src="nameOfCufonFile.js" type="text/javascript"></script>
<script src="myScript.js" type="text/javascript"></script>
Run Code Online (Sandbox Code Playgroud)

我也尝试过:

text.attr({ "font-size": 25, font: font, ...
text.attr({ "font-size": 25, "font-family": "FontName", …
Run Code Online (Sandbox Code Playgroud)

javascript printing fonts raphael

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