我有一个包含3个项目的解决方案。Project2需要Project1才能正常运行(Project2在Project1中称为Apis)。
Solution
|-- Project1
| |-- Program.cs
| |-- Startup.cs
|-- Project2
| |-- Program.cs
| |-- Startup.cs
|-- IntegrationTestProject
Run Code Online (Sandbox Code Playgroud)
我可以通过更改解决方案的属性来一起运行这两个项目,如下图所示,它运行良好:
我想要的是一种通过代码(从启动或Project2中的SomeService)从Project2运行Project1的方法,如果我在停止运行Project2时也可以停止Project1,那将很棒。
我尝试了这段代码,但它没有启动Project1:
string[] x = { };
Project1.Program.Main(x);
Run Code Online (Sandbox Code Playgroud)
编辑:
IntegrationTestProject用于测试Project2 Apis。所以我new TestServer()从Project2 创建了一个。
当我运行集成测试时,由于服务器(Project1)无法访问(测试运行时已关闭),一些API成功(仅依赖Project2的API)失败了(从Project1调用Apis的API)。
如果在运行Project1时运行集成测试,则所有测试均成功。
我尝试使用运行Project1的测试实例,new TestServer()并将其传递给Project2。它对某些Apis有用,而我遇到的另一个问题似乎是直到我运行Project1而不是它的测试实例时才解决。
因此,我唯一的解决方案是在启动集成测试时运行Project1。
我制作了一个.bat文件,该文件运行Project1(通过dotnet运行),然后启动集成测试(通过dotnet测试),并且工作正常。但是问题是从Visual Studio运行集成测试时,它没有运行Project1。
编辑2:
这是一个示例项目,演示了我面临的问题:https : //github.com/bilalseh/SampleSolution
1-如果单独运行Project2并调用(Get:“ / api / home”),它将返回结果。如果您调用(Get:“ / api / home / 5”),它将出现问题,因为此Api取决于Project1。
2-如果您打开Visual Studio并运行测试(2个测试)或通过“ dotnet test”从命令行运行这些测试,则1个测试将通过(测试:“ / api / home”),而一个测试将失败(测试:“ / api / home / 5“)。
3-如果您运行Project1,然后启动测试,则两者都会通过。
4-我在集成测试文件夹中创建了一个名为“使用临时服务器运行测试”的.bat文件。该文件将运行Project1,然后启动测试,然后停止Project1。如果运行此文件,则两个测试都将通过。
我想要的是找到一种从Project2或启动集成测试时启动Project1的方法。
我想要一个插件或一个库或一种方法来从设备相机中统一录制视频(确保声音)(Windows独立).
目前,我可以使用这款相机拍摄截图.有人说我可以截取很多截图并将其转换为一个视频文件.
我在资产商店找到了一个名为Camera Shoot的插件
我想要类似的东西,但对于Windows.
编辑1:
现在我正在使用一个从统一摄像头捕获视频的库(统一内部的虚拟摄像头).我正在我的应用程序中未显示的画布上预览我的相机Feed,我使用此库来录制此视频.
这可能解决了我的问题,但另一个问题是我需要录制麦克风语音以将此音频添加到录制的视频中.
所以,现在我使用的另一种代码记录从库中的视频(无声音),并记录声音从麦克风,并完成录制后,我这2个文件合并到一起,让我想要的文件.
再次出现一个新问题.合并过程(多路复用和压缩)需要很长时间(超过记录时间的10%),这导致许多问题.
所以我需要另一个解决方案,并且喜欢像上面那样的插件.
编辑2:
我在编辑器和构建中尝试了Unity VideoCapture示例.在统一编辑器中,应用程序运行没有错误,但它没有进入此功能"VideoCapture.CreateAsync()",因为他们说它不能与编辑器一起使用.
当我尝试构建到windows standalone build时,它给了我这个错误:"Assets/Scripts/Controllers/Other/VideoCaptureExample.cs(4,26):error CS0234:类型或命名空间名称'WebCam'不存在于命名空间'UnityEngine.XR.WSA'.你缺少一个程序集引用吗?"
我正在使用Unity创建一个Android / IOS应用程序。
在包含段落的页面中,我想知道是否单击文本的最后一句。(例如,“单击此处获取更多详细信息”)。单击此句子后,我想打开一个新页面。
我知道我可以放置2个文本元素并将此语句添加到第二个元素,并将重置语句添加到第一个元素,然后在第二个元素上添加onClick事件。
这是解决该问题的方法,但对于我而言,它无法解决问题,因为我正在动态获取文本,并且其大小会不时变化,因此第二个text元素将不会在第一个元素结束。
我需要用代码完成的解决方案。
我看到了同样的问题,但这是针对HTML和JavaScript的,而不是Unity的。
我将发布答案的代码片段之一,该代码片段具有与我想要的行为相同的行为。
const clickables = document.querySelectorAll('.clickable')
clickables.forEach(el => new Clickable(el))
function Clickable (el) {
const _handleClick = ({target}) => console.log(target.innerHTML)
const texts = el.textContent.split(/\s/)
el.innerHTML = ''
texts.forEach(t => {
const span = document.createElement('span')
span.innerHTML = `${t} `
span.addEventListener('click', _handleClick)
el.appendChild(span)
})
}Run Code Online (Sandbox Code Playgroud)
<h1 class="clickable">Some text</h1>
<h2 class="clickable">Some! more! text2</h1>Run Code Online (Sandbox Code Playgroud)
我在 Three js 中使用 sprites 来显示 2d 图像,我遇到的问题是它们旋转以面对相机。
我正在尝试使用它来为 3d 对象伪造阴影。当我旋转相机时,3d 物体会随着相机倾斜,直到它与水平面成 30 度角,但它的阴影(2d 精灵)仍然是 0 度。
如何禁用精灵的自动旋转,或者是否有另一种解决方案可以在三个 js 中预览 2d 图像以使其看起来像 3d 对象?
我需要列出给定文件夹中存在的所有文件,使用C#for ASP.Net core 1.类似于System.IO.Directory.GetFiles()早期版本.
使用 unity 2017.1 时,视频播放有声。没有视频的音频也播放得很好。
当我升级到 unity 2017.3 时,视频播放时没有声音,而没有视频的音频文件播放良好(声音打开)。
编辑:
将应用程序构建到 Windows 声音工作正常。问题似乎只出现在编辑器中。
c# ×4
asp.net-core ×2
api ×1
audio ×1
camera ×1
rotation ×1
sprite ×1
text ×1
three.js ×1
video-player ×1