小编Rei*_*ror的帖子

Unity 没有找到另一个 DLL 的 DLL 依赖项(都在 Assets 文件夹中)

背景信息(可能相关):

  • 使用 Unity 2017.2 并将“脚本运行时版本”设置为“实验性(.NET 4.6 等效)”
  • 在 Visual Studio 2017 中编写代码(不是 MonoDevelop)

我有一个直接使用第三方 DLL(“库 A”)的 Unity 项目,我已将其添加到项目的 Assets 文件夹中。库 A 依赖于另一个 DLL,即“库 B”,我也将其添加到 Assets 文件夹中。库 B 未被 Unity 项目中的任何脚本使用。库 A 和 B 都是用 C# 编写的,目标是 .NET 4,也就是说,它们都是托管代码。

添加到 Assets 文件夹后,当在 Visual Studio 中打开项目时,库 A 和 B 都列在“参考”下,并且“Copy Local”都设置为“True”(虽然我不知道 Unity 是否使用那个财产)。

但是,在 Unity 编辑器中运行项目时,对库 A 的各种调用都会引发异常,表明库 B 不可用。我能够让它工作的唯一方法是将库 B 的副本放入C:\Program Files\Unity\Editor(包含 Unity.exe 的目录,Unity 编辑器可执行文件)。

我在其他非 Unity 项目中使用过库 A 和 B,并且从未遇到任何问题(只要引用它们,Visual Studio 就会将它们都复制到输出目录中)。我是否缺少告诉它需要库 B 所必需的特定于 Unity 的步骤?

c# dll dependencies unity-game-engine

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

设置一个 Three.js 对象的 matrixWorld 属性

我有一个包含编码旋转和位置数据的 4x4 变换矩阵的数组(我已经确认该矩阵表示 Octave 中的有效变换)。我想使用这个数组的内容设置一个 Three.js 对象(一个Object3D)的 matrixWorld 属性,即根据转换矩阵设置对象的位置和旋转。

根据three.js文档中的这个页面和这里提出的各种问题(例如,this onethis one),似乎关键是设置nameOfObject.matrixAutoUpdate为false。但是,考虑到这一点,我尝试了多种设置方法nameOfObject.matrixWorld,但没有一种方法会更改渲染对象的位置:它保持在原点,没有旋转,就像matrixWorld4x4 单位矩阵的情况一样。

这是我尝试过的(此代码在render()调用之前位于更新方法中):

// Setting up a three.js matrix
var tempMatrix = new THREE.Matrix4();
tempMatrix.fromArray(arrayContainingTransformationMatrix);

// Values are set as expected
console.log(tempMatrix.elements);

// Note that the approaches below were tried one at a time

// First approach (doesn't work)
nameOfObject.matrixAutoUpdate = false;
nameOfObject.matrixWorld.copy(tempMatrix);

// Second approach (also doesn't work)
// Based on the …
Run Code Online (Sandbox Code Playgroud)

javascript 3d transform matrix three.js

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