내 게임에서 스크립팅 언어로 C#을 구현하고 싶습니다.런타임에서 C# 컴파일
제 문제는 게임 코어 (exe)에 정의 된 클래스를 사용하려는 경우 스크립트가 컴파일되지 않는다는 것입니다.
스크립트가 MDX 샘플에서와 같이 컴파일using System;
using ConsoleApplication1;
class Script
{
private static void Call()
{
Console.WriteLine("called");
}
public static void Init()
{
Console.WriteLine("Script");
Call();
GameObject myO; // THIS IS WHAT I WANT TO GET WORKED,
//IF THIS IS COMMENTED OUT, IT COMPILES FINE, GAMEOBJECT
// IS DEFINED IN THE "ConsoleApplication1" NAMESPACE.
}
}
:
static void Main(string[] args)
{
CodeDomProvider provider = new CSharpCodeProvider();
CompilerParameters cp = new CompilerParameters();
//cp.CompilerOptions = "/target:library";
cp.GenerateExecutable = false;
cp.GenerateInMemory = true;
cp.IncludeDebugInformation = false;
cp.ReferencedAssemblies.Add("ConsoleApplication2.exe");
cp.ReferencedAssemblies.Add("System.dll");
CompilerResults cr = provider.CompileAssemblyFromFile(cp, "script.cs");
if (!cr.Errors.HasErrors)
{
Console.WriteLine("Success");
cr.CompiledAssembly.GetType("Script").GetMethod("Init").Invoke(null, null);
}
Console.ReadLine();
}
있습니까 함수를 호출 또는 "의 ConsoleApplication1"에 정의 된 개체를 만들 수있는 방법을
스크립트는 다음과 같습니다 스크립트를 통한 네임 스페이스?
컴파일 타임 오류가 발생하는 부분을 놓쳤습니까? – Tipx
오, 너무 바보 같아요 ... 컴파일러 오류 [0]을 확인한 후 감사합니다. – Blaxx
'ConsoleApplication1.GameObject'가 'ConsoleApplication2.exe'에 정의되어 있습니까? –