質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Q&A

0回答

3797閲覧

外部で作成したDLLをUnityで読み込みたい

yamatto

総合スコア8

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

0グッド

0クリップ

投稿2016/09/20 19:01

###前提・実現したいこと
Visual studio2015を用いて
c#で作成したクラスライブラリ(DLL)を作成して
Unityで読み込み使用したいのですが
下記問題が発生して先に進めません

解決方法をご存知の方がいらっしゃいましたら、修正方法をご教授ください
よろしくお願いいたします。

###発生している問題・エラーメッセージ

Unhandled Exception: System.Reflection.ReflectionTypeLoadException:The classes in the module cannot be loaded.

at (wrapper managed-to-native) System.Reflection.Assembly:GetTypes (bool)

at System.Reflection.Assembly.GetTypes () [0x00000] in <filename unknown>:0

at Mono.CSharp.RootNamespace.ComputeNamespaces (System.Reflection.Assembly assembly, System.Type extensionType) [0x00000] in <filename unknown>:0

at Mono.CSharp.RootNamespace.ComputeNamespace (Mono.CSharp.CompilerContext ctx, System.Type extensionType) [0x00000] in <filename unknown>:0

at Mono.CSharp.GlobalRootNamespace.ComputeNamespaces (Mono.CSharp.CompilerContext ctx) [0x00000] in <filename unknown>:0

at Mono.CSharp.Driver.LoadReferences () [0x00000] in <filename unknown>:0

at Mono.CSharp.Driver.Compile () [0x00000] in <filename unknown>:0

at Mono.CSharp.Driver.Main (System.String[] args) [0x00000] in <filename unknown>:0

Missing method .ctor in assembly C:\Users\user\Documents\sample01 csvyomikomi\Assets\ClassLibrary8.dll, type System.Runtime.Versioning.TargetFrameworkAttribute
The class System.Runtime.Versioning.TargetFrameworkAttribute could not be loaded, used in ClassLibrary8
Can't find custom attr constructor image: C:\Users\user\Documents\sample01 csvyomikomi\Assets\ClassLibrary8.dll mtoken: 0x0a00000e

###該当のソースコード
下記手順で行いました

Ⅰ・visual studio2015でDLLファイルを作成

【ソース】

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace DLLTEST2
{
public class Class1
{
public static int Hoge()
{
return 114514;
}
}
}

上記ソースコードをビルドしてDLLファイルを作成しました。
※ビルドする前に、Solution Explorer→References→Add Referenceから
UnityEditor.dllとUnityEngine.dllを追加しています。

Ⅱ・Unityを立ち上げ
Project→Assetsに、Ⅰで作成したDLLをドラッグ&ドロップして追加しました。
その後、Unityで下記ソースを作成し、実行しました。

【ソース】
using UnityEngine;
using System.Collections;
using DLLTEST2;

public class Test : MonoBehaviour {

// Use this for initialization void Start () { Debug.Log(Class1.Hoge()); }

}

この手順で実行した所
シーン上にAll compiler errors have to be fixed before you can enter playmode というエラーが発生し

コンソールには
Unhandled Exception: System.Reflection.ReflectionTypeLoadException:
The classes in the module cannot be loaded.
というエラーメッセージが表示、現在実行できていません

###試したこと

###補足情報

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

grainrigi

2016/10/11 08:03

現在Unityは.NET3.5までしか対応していませんが、DLL作成時にはちゃんとバージョンを指定しましたか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問