Jump to content

No KSPAsset in Unity menu


Recommended Posts

It's been way too long since I tried setting up PartTools so I could generate asset bundles, and I've migrated to a new computer, so I probably forgot some magic step, and my search of the forum did not find it.

I opened a new project in Unity 5.4.0p4, installed the TMP free edition, and I imported the latest & greatest part tools.  I can open and configure PartTools.  I can add an asset, and assign it to an AssetBundle, but there is no KSPAssets menu.  I see the asset compiler DLL and KSPAssets DLL under Assets/Plugins/KSPAssets, but I don't see how I can use it.  I don't see any messages on the console at load time.

Was there something I needed to do to enable the DLL so I could generate asset bundles?

EDIT: Okay, now I see some stuff in the console after continuing to mess around with Unity:

Exception: The classes in the module cannot be loaded.
	Could not load type 'KSPFontAsset' from assembly 'KSPAssetCompiler, Version=1.1.0.0, Culture=neutral, PublicKeyToken=null'.
	Could not load type 'KSPFontAssetList' from assembly 'KSPAssetCompiler, Version=1.1.0.0, Culture=neutral, PublicKeyToken=null'.
	Could not load type 'KSPKerningPairList' from assembly 'KSPAssetCompiler, Version=1.1.0.0, Culture=neutral, PublicKeyToken=null'.
UnityEditor.Scripting.APIUpdaterHelper.IsReferenceToMissingObsoleteMember (System.String namespaceName, System.String className) (at C:/buildslave/unity/build/Editor/Mono/Scripting/APIUpdaterHelper.cs:34)

and

API Updater: Exception verifying member: StandaloneException: The classes in the module cannot be loaded.
	Could not load type 'KSPFontAsset' from assembly 'KSPAssetCompiler, Version=1.1.0.0, Culture=neutral, PublicKeyToken=null'.
	Could not load type 'KSPFontAssetList' from assembly 'KSPAssetCompiler, Version=1.1.0.0, Culture=neutral, PublicKeyToken=null'.
	Could not load type 'KSPKerningPairList' from assembly 'KSPAssetCompiler, Version=1.1.0.0, Culture=neutral, PublicKeyToken=null'.
UnityEditor.Scripting.APIUpdaterHelper.IsReferenceToMissingObsoleteMember (System.String namespaceName, System.String className) (at C:/buildslave/unity/build/Editor/Mono/Scripting/APIUpdaterHelper.cs:34)

 

Edited by MOARdV
Now seeing exceptions
Link to comment
Share on other sites

If I revert to the previous version of part tools that I have, I get the KSPAssets menu, and I can open the asset compiler menu, but when I try to build the asset, Unity prompts me with "WebPlayer asset bundles can no longer be built in 5.4+".  So ... what version of Unity does the current flavor of Part Tools support?

Link to comment
Share on other sites

26 minutes ago, JPLRepo said:

Will have to take a look at it.
It should be 5.4.0p4 (for the latest part tools).
Did you try restarting Unity? and if so do you still get those errors?

Yes, I did. A few times.  I should clarify: the errors only showed up when I was mashing buttons / clicking things at some point (a beer and a half ago); if I simply start 5.4.0p4, the KSPAssets menu entry is missing, and there are no errors.

I reinstalled Unity 5.2.4, and Unity won't plug in the KSP 1.3.0 asset compiler (no menu entry), but 5.2.4 will work with the older part tools I have (my notes say 1.1.2, the asset compiler DLL is dated 3/16/2016).  So, I can work around the issue, but I'd like to know if I simply overlooked a step, or if it's my system setup. I vaguely recall that I had to fight with Unity to get asset bundles to work when it was originally introduced.  But I'd rather not have to have two Unity installations if I don't need to.

Link to comment
Share on other sites

44 minutes ago, JPLRepo said:

The idea of the new parttools is everything should work in 5.4.0p4. No need for the old one. So I will take a look at it again see if it works for me.
 

I appreciate it.  The 5.2.4 "solution" doesn't quite work, either - the asset bundle is substantially smaller, and the shaders don't work, so there's a step I missed with the old part tools, as well.  I should have documented what I did the first time around.  Oh, well.

Link to comment
Share on other sites

The TextMeshPro asset from the store has a different assembly name that the one KSPAssetCompiler references so it's failing to resolve. You can fix that pretty easily with a little script. Create a new Editor folder somewhere appropriate (I use Plugins/KSPAssets/Editor), create a new script TextMeshProResolver and paste this into it:

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Reflection;
using ReeperCommon.Logging;
using UnityEditor;
using UnityEngine;

namespace Assets.Plugins.KSPAssets.Editor
{
    [InitializeOnLoad] 
    static class TextMeshProResolver
    {
        private const string TextMeshPro = "TextMesh Pro/Plugins";
        private const string TextMeshProDllFilter = "TextMeshPro*.dll";


        static TextMeshProResolver()
        {
            AppDomain.CurrentDomain.AssemblyResolve += CurrentDomainOnAssemblyResolve;
        }


        private static Assembly CurrentDomainOnAssemblyResolve(object sender, ResolveEventArgs args)
        {
            if (!args.Name.StartsWith("TextMeshPro")) return null;

            Assembly result;

            if (FindLoadedTMP(out result))
            {
                return result;
            }

            string path;

            if (!GetPathToTMP(out path))
                Debug.LogError("need to install TextMeshPro");
            else Debug.LogWarning("modify this function to load the DLL ourselves"); // seems to always be loaded by the time we get there, but include a reminder
            // on how to fix it in case this is ever not the case

            return null;
        }


        private static string SanitizePath(string path)
        {
            return path.Replace('\\', Path.DirectorySeparatorChar).Replace('/', Path.DirectorySeparatorChar);
        }


        // ReSharper disable once InconsistentNaming
        private static bool GetPathToTMP(out string path)
        {
            path = string.Empty;

            var tmpDir = SanitizePath(Path.Combine(Application.dataPath, TextMeshPro));

            if (!Directory.Exists(tmpDir))
                return false;

            var possibleDlls = Directory.GetFiles(tmpDir, TextMeshProDllFilter);

            if (possibleDlls.Length == 0)
            {
                Debug.LogError("could not find TextMeshPro dll!");
                return false;
            } else if (possibleDlls.Length > 1)
            {
                Debug.LogError("multiple dlls found for TextMeshPro. Did you install multiple versions?");
                return false;
            }

            var possiblePath = SanitizePath(Path.Combine(tmpDir, possibleDlls.Single()));

            if (!File.Exists(possiblePath))
                return false;

            path = possiblePath;
            return true;
        }


        // ReSharper disable once InconsistentNaming
        private static bool FindLoadedTMP(out Assembly tmpAssembly)
        {
            string path;
            tmpAssembly = null;

            if (!GetPathToTMP(out path))
                return false;

            foreach (var a in AppDomain.CurrentDomain.GetAssemblies()
                .Where(a => a.GetName().Name.StartsWith("TextMeshPro")))
            {
                if (0 != string.Compare(SanitizePath(a.Location), path, StringComparison.Ordinal))
                    continue;

                tmpAssembly = a;
                return true;
            }

            return false;
        }
    }
}

 

Edited by xEvilReeperx
Link to comment
Share on other sites

1 hour ago, xEvilReeperx said:

The TextMeshPro asset from the store has a different assembly name that the one KSPAssetCompiler references so it's failing to resolve. You can fix that pretty easily with a little script. Create a new Editor folder somewhere appropriate (I use Plugins/KSPAssets/Editor), create a new script TextMeshProResolver and paste this into it:


using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Reflection;
using ReeperCommon.Logging;
using UnityEditor;
using UnityEngine;

namespace Assets.Plugins.KSPAssets.Editor
{
    [InitializeOnLoad] 
    static class TextMeshProResolver
    {
        private const string TextMeshPro = "TextMesh Pro/Plugins";
        private const string TextMeshProDllFilter = "TextMeshPro*.dll";


        static TextMeshProResolver()
        {
            AppDomain.CurrentDomain.AssemblyResolve += CurrentDomainOnAssemblyResolve;
        }


        private static Assembly CurrentDomainOnAssemblyResolve(object sender, ResolveEventArgs args)
        {
            if (!args.Name.StartsWith("TextMeshPro")) return null;

            Assembly result;

            if (FindLoadedTMP(out result))
            {
                return result;
            }

            string path;

            if (!GetPathToTMP(out path))
                Debug.LogError("need to install TextMeshPro");
            else Debug.LogWarning("modify this function to load the DLL ourselves"); // seems to always be loaded by the time we get there, but include a reminder
            // on how to fix it in case this is ever not the case

            return null;
        }


        private static string SanitizePath(string path)
        {
            return path.Replace('\\', Path.DirectorySeparatorChar).Replace('/', Path.DirectorySeparatorChar);
        }


        // ReSharper disable once InconsistentNaming
        private static bool GetPathToTMP(out string path)
        {
            path = string.Empty;

            var tmpDir = SanitizePath(Path.Combine(Application.dataPath, TextMeshPro));

            if (!Directory.Exists(tmpDir))
                return false;

            var possibleDlls = Directory.GetFiles(tmpDir, TextMeshProDllFilter);

            if (possibleDlls.Length == 0)
            {
                Debug.LogError("could not find TextMeshPro dll!");
                return false;
            } else if (possibleDlls.Length > 1)
            {
                Debug.LogError("multiple dlls found for TextMeshPro. Did you install multiple versions?");
                return false;
            }

            var possiblePath = SanitizePath(Path.Combine(tmpDir, possibleDlls.Single()));

            if (!File.Exists(possiblePath))
                return false;

            path = possiblePath;
            return true;
        }


        // ReSharper disable once InconsistentNaming
        private static bool FindLoadedTMP(out Assembly tmpAssembly)
        {
            string path;
            tmpAssembly = null;

            if (!GetPathToTMP(out path))
                return false;

            foreach (var a in AppDomain.CurrentDomain.GetAssemblies()
                .Where(a => a.GetName().Name.StartsWith("TextMeshPro")))
            {
                if (0 != string.Compare(SanitizePath(a.Location), path, StringComparison.Ordinal))
                    continue;

                tmpAssembly = a;
                return true;
            }

            return false;
        }
    }
}

 

Oh.... new version of the free TMPro. Was worried about that. Hmm. Ok. Will do something like this for an update.

Link to comment
Share on other sites

9 hours ago, xEvilReeperx said:

The TextMeshPro asset from the store has a different assembly name that the one KSPAssetCompiler references so it's failing to resolve. You can fix that pretty easily with a little script. Create a new Editor folder somewhere appropriate (I use Plugins/KSPAssets/Editor), create a new script TextMeshProResolver and paste this into it:


using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Reflection;
using ReeperCommon.Logging;
using UnityEditor;
using UnityEngine;

namespace Assets.Plugins.KSPAssets.Editor
{
    [InitializeOnLoad] 
    static class TextMeshProResolver
    {
        private const string TextMeshPro = "TextMesh Pro/Plugins";
        private const string TextMeshProDllFilter = "TextMeshPro*.dll";


        static TextMeshProResolver()
        {
            AppDomain.CurrentDomain.AssemblyResolve += CurrentDomainOnAssemblyResolve;
        }


        private static Assembly CurrentDomainOnAssemblyResolve(object sender, ResolveEventArgs args)
        {
            if (!args.Name.StartsWith("TextMeshPro")) return null;

            Assembly result;

            if (FindLoadedTMP(out result))
            {
                return result;
            }

            string path;

            if (!GetPathToTMP(out path))
                Debug.LogError("need to install TextMeshPro");
            else Debug.LogWarning("modify this function to load the DLL ourselves"); // seems to always be loaded by the time we get there, but include a reminder
            // on how to fix it in case this is ever not the case

            return null;
        }


        private static string SanitizePath(string path)
        {
            return path.Replace('\\', Path.DirectorySeparatorChar).Replace('/', Path.DirectorySeparatorChar);
        }


        // ReSharper disable once InconsistentNaming
        private static bool GetPathToTMP(out string path)
        {
            path = string.Empty;

            var tmpDir = SanitizePath(Path.Combine(Application.dataPath, TextMeshPro));

            if (!Directory.Exists(tmpDir))
                return false;

            var possibleDlls = Directory.GetFiles(tmpDir, TextMeshProDllFilter);

            if (possibleDlls.Length == 0)
            {
                Debug.LogError("could not find TextMeshPro dll!");
                return false;
            } else if (possibleDlls.Length > 1)
            {
                Debug.LogError("multiple dlls found for TextMeshPro. Did you install multiple versions?");
                return false;
            }

            var possiblePath = SanitizePath(Path.Combine(tmpDir, possibleDlls.Single()));

            if (!File.Exists(possiblePath))
                return false;

            path = possiblePath;
            return true;
        }


        // ReSharper disable once InconsistentNaming
        private static bool FindLoadedTMP(out Assembly tmpAssembly)
        {
            string path;
            tmpAssembly = null;

            if (!GetPathToTMP(out path))
                return false;

            foreach (var a in AppDomain.CurrentDomain.GetAssemblies()
                .Where(a => a.GetName().Name.StartsWith("TextMeshPro")))
            {
                if (0 != string.Compare(SanitizePath(a.Location), path, StringComparison.Ordinal))
                    continue;

                tmpAssembly = a;
                return true;
            }

            return false;
        }
    }
}

 

We have a winner!  That was (almost) the solution.  Once I removed the 'using ReeperCommon.Logging' line, that is. :)

Thanks for that missing bit of info.  Now I just need to remember what combination of sacrifices I had to do to get the shaders working in-game, but that'll be subject for a different thread if I don't get it sorted out.

Link to comment
Share on other sites

The TMP free asset from the store does not uses the same script ID as the one from KSP (can't link the TMP thread from work since it is blocked). So you won't be able to export asset that uses TMP. The best route would be to build PartTools with the code+meta of one used by KSP.

Link to comment
Share on other sites

On 5/31/2017 at 6:44 AM, sarbian said:

The TMP free asset from the store does not uses the same script ID as the one from KSP (can't link the TMP thread from work since it is blocked). So you won't be able to export asset that uses TMP. The best route would be to build PartTools with the code+meta of one used by KSP.

1 step forward 3 steps back. So much for not using hacks to get UI hooked up in this release.

Link to comment
Share on other sites

  • 2 months later...

What? ... sorry, can someone explain to me (and others) this step by step?? I've created a new project and I did import the PartTools_AssetBundles.unitypackage ... and I've no compiler-menu... fine, same situation you had. And now? What do I have to do? (by the way: all I did was installing unity version 5.4.0p4 (64 bit) and download the PartTools_AssetBundles.unitypackage file... nothing more up to now. (and I don't know what scripts do and when they are executed and why and if there's an order I can set or how to import them or ... whatever).

---

Why is "software development" a constant battle against developer tools? I don't get it. In my job I'm fighting against Visual Studio crashes, editor bugs, wrong documentations non working api functions and when I try to relax and play ksp or build a nice little mod for it, then I've to dig into the problems we have here.

And why are those compilers no longer available on the official site anyway? ... ah, forget it... but, would be nice if you can explain how to compile/export an asset. Thanks.

Rudolf

Link to comment
Share on other sites

3 hours ago, Rudolf Meier said:

What? ... sorry, can someone explain to me (and others) this step by step?? I've created a new project and I did import the PartTools_AssetBundles.unitypackage ... and I've no compiler-menu... fine, same situation you had. And now? What do I have to do? (by the way: all I did was installing unity version 5.4.0p4 (64 bit) and download the PartTools_AssetBundles.unitypackage file... nothing more up to now. (and I don't know what scripts do and when they are executed and why and if there's an order I can set or how to import them or ... whatever).

---

Why is "software development" a constant battle against developer tools? I don't get it. In my job I'm fighting against Visual Studio crashes, editor bugs, wrong documentations non working api functions and when I try to relax and play ksp or build a nice little mod for it, then I've to dig into the problems we have here.

And why are those compilers no longer available on the official site anyway? ... ah, forget it... but, would be nice if you can explain how to compile/export an asset. Thanks.

Rudolf

It would help to know exactly what you are trying to do.  In my case, I was writing shaders to use in KSP, and I wanted to export those shaders using the KSP asset bundle.

Link to comment
Share on other sites

I'm trying to build a gui for a mod in KSP. Just... a window with a button on top of it as a first sample.

Anyway... I found out how it works. Pretty strange... I mean... Unity seems to execute every script it finds in a folder whithout asking and things like that. To understand all this it needs a lot of imagination. ... when I find some time, maybe I'll write a detailed description of it ... but, I'm pretty busy at the moment.

Link to comment
Share on other sites

2 hours ago, Rudolf Meier said:

I'm trying to build a gui for a mod in KSP. Just... a window with a button on top of it as a first sample.

Anyway... I found out how it works. Pretty strange... I mean... Unity seems to execute every script it finds in a folder whithout asking and things like that. To understand all this it needs a lot of imagination. ... when I find some time, maybe I'll write a detailed description of it ... but, I'm pretty busy at the moment.

For a simple GUI, you don't need Unity.  There are classes in KSP that allow you to create simple interfaces without using Unity.  More advanced GUIs are probably easier to create in Unity, but that's more advanced than anything I've personally done.

Link to comment
Share on other sites

38 minutes ago, MOARdV said:

For a simple GUI, you don't need Unity.  There are classes in KSP that allow you to create simple interfaces without using Unity.  More advanced GUIs are probably easier to create in Unity, but that's more advanced than anything I've personally done.

Yeah... I know :-) but... unfortunatelly I'm never choosing the simple way. I always want to build my own framework or something like that... sometimes it's a lot of work. But in the end, when you fully understand everything, you can build way better and much simpler products. And I like that... no idea why I am like this. But my mother told me, that I had this behaviour already at my first year at school... so :-) I guess that's me.

Link to comment
Share on other sites

  • 2 months later...

It seems the whole thing with the Parttools, Unity and TextMesh Pro is getting more complicated...
I wanted to update to Unity 5.4.0p4 and use the new PartTools.

As soon as i install both, the PartTools and and TextMesh Pro, the whole Editor freezes. This can also not be resolved by adding the patch-script posted above (i removed the  'using ReeperCommon.Logging' line)
When i want to restart unity i get to the window which allows me to select the project. But when i choose any project that has Parttools and TMP, the Editor won't show up at all.

The log of the editor shows that it fails while loading TMP so i guess another update of TMP broke the above script as well as the parttools?

Here's the log of the editor: Editor.log

Maybe @JPLRepo has an idea what is happening or how it can be resolved? 

Edited by Nils277
Link to comment
Share on other sites

  • 1 month later...
On 10/16/2017 at 2:28 AM, Nils277 said:

It seems the whole thing with the Parttools, Unity and TextMesh Pro is getting more complicated...
I wanted to update to Unity 5.4.0p4 and use the new PartTools.

As soon as i install both, the PartTools and and TextMesh Pro, the whole Editor freezes. This can also not be resolved by adding the patch-script posted above (i removed the  'using ReeperCommon.Logging' line)
When i want to restart unity i get to the window which allows me to select the project. But when i choose any project that has Parttools and TMP, the Editor won't show up at all.

The log of the editor shows that it fails while loading TMP so i guess another update of TMP broke the above script as well as the parttools?

Here's the log of the editor: Editor.log

Maybe @JPLRepo has an idea what is happening or how it can be resolved? 

Your Editor.log shows that the TMP it is trying to load is TextMeshPro-1.0.55.2017.2.0b12

which is meant for Unity 2017.2 according to TMP:  

Release 1.0.55.0b12 of TextMesh Pro has been submitted to the Asset Store and should be available within the next few days.

Please read the Release and Upgrade Notes before updating to this new release and always be sure to backup your project first.

Although the releases for Unity 2017.1 and 2017.2 will be available on the Asset Store, here is a link to download those directly.

TextMesh Pro Release 1.0.55.2017.1.0b12 for Unity 2017.1

TextMesh Pro Release 1.0.55.2017.2.0b12 for Unity 2017.2

Please report any issues in this section of the user forum.

*** Reminder ***
As per the Upgrade Note part of the Release Notes, before importing the new release of TMP, you have to first remove the previous version by deleting the "TextMesh Pro" folder.

Be sure to back up any files or assets you may have saved inside the TextMesh Pro folder hierarchy (you should not have but just in case) before deleting the folder. Be sure to review and note any changes you may have made to the TMP Settings file, Stylesheet and other assets.

Until TMP is part of the Unity installer, as you upgrade to new major releases of Unity (ie. 5.5, 5.6, 2017.1, 2017.2, etc.) you will also need to keep updating TMP to the matching release for that version of Unity.
 

I would suggest contacting Unity support.  

Edited by Hupherius
Link to comment
Share on other sites

  • 2 months later...
  1. I'm having similar problems ->tried install on several versions of Unity 4.9, 5.0, 2017, and now back to 5.4.0p4(all personal editions).  Loaded TextMesh (current version) says it is for u5.x,a few others, and 2017.  Have part tools window in editor but can't spawn interiors  correctly, I get the models, but a bunch of texture errors:
  2. Texture 'Squad/Props/buttonsGeneric/ButtonsAndSwitches' not found!
    UnityEngine.Debug:LogError(Object)
    KSPPartTools.PartReader:ReadTextures(BinaryReader, GameObject)
    KSPPartTools.PartReader:ReadChild(BinaryReader, Transform)
    KSPPartTools.PartReader:Read(UrlFile)
    KSPPartTools.GameDatabase:GetModel(String)
    KSPPartTools.PartUtils:CompileModel(UrlConfig, ConfigNode, Single)
    KSPPartTools.PartUtils:SpawnProp(Transform, UrlConfig, ConfigNode)
    KSPPartTools.PartUtils:SpawnProp(Transform, String)
    KSPPartTools.PartUtils:LoadSpace(InternalSpace, UrlConfig, ConfigNode)
    KSPPartTools.PartUtils:SpawnSpace(UrlConfig, ConfigNode)
    KSPPartTools.PartToolsWindow:DrawSpace(UrlConfig, ConfigNode)
    KSPPartTools.PartToolsWindow:DrawSpaces()
    KSPPartTools.PartToolsWindow:OnGUI()
    UnityEditor.DockArea:OnGUI()
  3. the textures are clearly there (is it because they are dds?) is this normal?
    I've been at this for a week now, and it has never taken this long to get an ide/development tool set up for use before. Previously, I have been able to develop parts and install them in the game, even with my own modules, but now, I am stuck on this (got here trying to learn to create iva's) and I am considerably frustrated.  Thanks for your time.
Link to comment
Share on other sites

11 hours ago, Redneck said:

has anybody found a solution to this problem? "Webplayer asset bundles can no longer be built in 5.4+ " i have unity 5.4.0p4 and latest parttools and textmeshpro for my version of unity

 

Which problem?  The problem I had is different than the one you're asking about.  I personally have not bothered with textmeshpro, since the only asset bundles I create include shaders and (non-TMP) fonts, and I don't see a reason to spend money on the paid TMP.  The asset bundle export script listed earlier in this thread works for me with 5.4.0p4.

Link to comment
Share on other sites

2 hours ago, MOARdV said:

Which problem?  The problem I had is different than the one you're asking about.  I personally have not bothered with textmeshpro, since the only asset bundles I create include shaders and (non-TMP) fonts, and I don't see a reason to spend money on the paid TMP.  The asset bundle export script listed earlier in this thread works for me with 5.4.0p4.

Me and a friend are trying to make a GUI using the new way of doing it (i forgot the name) But i am following the tut here: 

the beginning of the tutorial where you export the asset bundle? (KSPAssets/build menu)It is failing with the issue "Webplayer asset bundles can no longer be built in 5.4+ "  I will try to delete the TMP from the project folder and reload unity to see if it will build

Edited by Redneck
Link to comment
Share on other sites

I just started a clean project and redid the tut steps and it exports the bundles fine.

Things to check (indulge me, we can all miss a step):

  • File=>Build Settings. Is the Platform set to "PC, Mac & Linux Standalone" ?
  • From the PartTools_KSP11_2.zip did you copy the PartTools directory into your project Asset folder. And then did you import the PartTools_AssetBundles.unitypackage ? ( Assets Tab along the top -> Import Package -> Custom Package -> Select the PartTools_AssetBundles.unitypackage)
  • Then you dragged an object from the Hierarchy tab into the "Project Tab" Asset folder ? It created an item with a blue cube icon ?
  • Then on the lower right panel "Asset Labels" you selected the drop down menu, chose new and typed the name you want to use for your bundle ?
  • Then in the KSPAsset menu you chose "Asset Compiler" and clicked "create" next to the name you chose for your bundle ? (in your post you talk about "build menu". that is not the name and sounds like a different script you may have laying around)

 

Edit: the message you have is the one you get when the asset builder methods is called with the wrong parameters and that s why I am quite sure you have a stray .cs script in your project.

Edited by sarbian
Link to comment
Share on other sites

This thread is quite old. Please consider starting a new thread rather than reviving this one.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...