• Stars
    star
    356
  • Rank 119,434 (Top 3 %)
  • Language
    C#
  • License
    MIT License
  • Created almost 9 years ago
  • Updated over 5 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Unity3D Incremental C# Compiler using Roslyn

Build status

Unity3D.IncrementalCompiler

Unity3D Incremental C# Compiler using Roslyn.

  • You can get faster compilation speed. Because it works as an incremental compiler
  • You can use C# 5 and 6 features.

This project is at an early development stage. And still now it can support only windows platform.

Setup

Unzip a release zip file to your unity project top-most directory. (Unblocking zip file before decompressing zip file might be required to avoid TypeLoadException of Unity-Mono.)

  • When Unity 4.x, use IncrementalCompiler.Unity4.zip
  • When Unity 5.x, use IncrementalCompiler.Unity5.zip

A release zip has a plugin dll which should be put at Editor folder and a few compiler related files which should be put at Compiler folder. Following before and after screenshot will helps for understanding install location.

InstallScreenshot

While an incremental compiler build your scripts, it saves log files to project/Temp directory. With these log files, you can see how it works.

LogFiles

Configuration

You can configure how this compiler work by settings window. Click "Assets/Open C# Compiler Settings..." in UnityEditor.

SettingsMenu

Not only settings but you can also check detailed log and information.

SettingsWindow

Also you can manually modify a configure file which is located at project/Compiler/IncrementalCompiler.xml

More information

FAQ

  • When incremental compiler is installed, Unity claims something wrong like:
TypeLoadException: Could not load type 'UnityEditor.Modules.CSharpCompiler' from assembly 'UnityEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null'.
UnityEditor.Scripting.ScriptCompilers.CreateCompilerInstance (MonoIsland island, Boolean buildingForEditor, BuildTarget targetPlatform, Boolean runUpdater) (at C:/buildslave/unity/build/Editor/Mono/Scripting/ScriptCompilers.cs:93)

This problem is usually caused by windows file blocking system. You need to unblock zip file before uncompressing this file.

Related works

  • An integration part between unity3d and incremental compiler is based on alexzzzz's works.
  • Mono MDB writer for roslyn is based on DavidKarlas's work.

More Repositories

1

Json.Net.Unity3D

Forked Newtonsoft.Json to support Unity3D
C#
915
star
2

Unity3D.UselessAttributeStripper

Useless attribute stripper for IL2CPPed executable. It will help for reducing app size for iOS.
C#
76
star
3

Unity3D.UiManager

Essential UI Manager for Unity3D
C#
58
star
4

TicTacToe

Reference game using Akka.Interfaced and TrackableData
C#
56
star
5

Unity3D.ThaiFontAdjuster

Utility to render Thai text correctly in Unity3D, especially for positioning tone mark (ก์กิ์ป์ปิ์ฎุญุ).
C#
55
star
6

Akka.Interfaced

Akka.Interfaced provides the interfaced way for actor messaging in Akka.NET
C#
52
star
7

UniGet

The package manager for Unity3D.
C#
34
star
8

TrackableData

Simple library to track changes of poco, list and dictionary.
C#
24
star
9

ExcelJsonTable

Excel Add-In for Importing and Exporting Json Table
C#
23
star
10

Akka.ProjectScaffolding

Akka.NET + Akka.Interfaced + Unity3D Project Scaffolding
C#
21
star
11

LidgrenUdpNet

Modified version of [lidgren-network-gen3](https://github.com/lidgren/lidgren-network-gen3).
C#
20
star
12

NetLegacySupport

Library helps supporting old .NET frameworks like .NET 2.0 and 3.5.
C#
20
star
13

Snake

Reference game using EntityNetwork, Akka.Interfaced and TrackableData
C#
18
star
14

Akka.Interfaced.SlimSocket

Akka.Interfaced over SlimSocket
C#
13
star
15

EntityNetwork

Entity Network System for Online Game
C#
12
star
16

Common.Logging.Unity3D

Common Logging (A portable logging abstraction for .NET) for Unity3D
C#
11
star
17

Akka.Cluster.Utility

Utilities for Akka.Cluster
C#
10
star
18

TemplateTable

Dictionary container for containing game object template.
C#
9
star
19

Chatty

Demo chat application using Akka.Interfaced and SlimSocket
C#
8
star
20

TypeAlias

Library that makes the unique alias of types in .NET.
C#
6
star
21

AsyncWorker

.NET asynchronous worker to schedule many "async" work in an easy way.
C#
5
star
22

SqlProcBinder

SQL Stored Procedure Binder for .NET
C#
4
star
23

CodeWriter

Helper class for generating code concisely.
C#
4
star
24

LumberjackClient

Library for transporting log data to Logstash via Lumberjack protocol.
C#
3
star
25

BuildToolkit

Build toolkit for SaladLab projects
F#
3
star
26

saladlab.github.io

SaladLab blog http://saladlab.github.io
HTML
1
star
27

Aim.ClusterNode

Basic bootstrap module for running cluster node on Akka.Interfaced Module.
C#
1
star