Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

关于Unity的杂七杂八的问题(不定期更新) #6

Open
woct0rdho opened this issue Jul 18, 2021 · 7 comments
Open

关于Unity的杂七杂八的问题(不定期更新) #6

woct0rdho opened this issue Jul 18, 2021 · 7 comments

Comments

@woct0rdho
Copy link
Collaborator

woct0rdho commented Jul 18, 2021

如果在Unity Editor中开始游戏时闪退,先检查一下是不是硬盘满了

然后可以试试清空存档:在Unity Editor的上面的菜单中,点击Nova -> Clear All

如果演出方面遇到任何奇怪的问题,也可能需要清空存档

打包给别人测试时,也可能需要在别人的电脑上清空存档,存档和快捷键设置的位置详见:
https://docs.unity3d.com/ScriptReference/Application-persistentDataPath.html
其他设置的位置详见:
https://docs.unity3d.com/ScriptReference/PlayerPrefs.html

(但是在游戏全部做完之后,打包给别人玩,别人之前也没有玩过测试版,那么正常情况下肯定不用清空存档,否则就是bug,请告诉我们)

如果用Unity Editor上面的那个按钮退出游戏模式,一般会有空引用之类的报错,不用管它。如果在游戏中正常退出游戏,应该没有报错,否则就是bug,请告诉我们

如果打开Unity Editor时出现报错Library/PackageCache/com.unity.render-pipelines.universal ...,建议升级Unity到最新的小版本(不用改2020/2021/2022的大版本),不方便的话也可以在package manager里降级URP到推荐的版本

如果build时Scripting Backend是Mono,并且游戏安装路径中有中文,可能会出现LuaRuntime的问题,用IL2CPP就不会有这个问题,详见mono/mono#7117

@qiankanglai
Copy link
Contributor

最后这个中文的问题,我本地试了下这样可以解决。相当于强制走一发Encoding转换 而不是默认先尝试Ansi...

public static string lua_ptrtostring(IntPtr str, int len)
{
    /*
    string ss = Marshal.PtrToStringAnsi(str, len);

    if (ss == null)
    {
        byte[] buffer = new byte[len];
        Marshal.Copy(str, buffer, 0, len);
        return Encoding.UTF8.GetString(buffer);
    }
    
    return ss;
    */
    byte[] buffer = new byte[len];
    Marshal.Copy(str, buffer, 0, len);
    return Encoding.UTF8.GetString(buffer);
}

ps. 后来翻了下xlua处理方式发现是一样的2333

@woct0rdho
Copy link
Collaborator Author

好啊,但是这样会有性能损失,或者在某些情况下不兼容吗(不用UTF-8的平台应该只有Windows吧)

@qiankanglai
Copy link
Contributor

兼容问题应该还好,因为Encoding.UTF8.GetString内部其实处理了。
或者就参考xlua那个 用UNITY_WSA && !UNITY_EDITOR包一下? PC上这点性能损失洒洒水了...

@bluuueheart
Copy link

bluuueheart commented Mar 21, 2024

你好,打开unity出现报错 Library/PackageCache/com.unity.render-pipelines.universal 的情况怎么办呢,我已经更新到最新小版本23.2.13f1c1

@woct0rdho
Copy link
Collaborator Author

你好,打开unity出现报错 Library/PackageCache/com.unity.render-pipelines.universal 的情况怎么办呢,我已经更新到最新小版本23.2.13f1c1

在package manager里找到跟URP相关的包,看它的所有版本,其中有一个版本旁边有绿色的verified,把它换成这个版本

@bluuueheart
Copy link

你好,打开unity出现报错 Library/PackageCache/com.unity.render-pipelines.universal 的情况怎么办呢,我已经更新到最新小版本23.2.13f1c1

在package manager里找到跟URP相关的包,看它的所有版本,其中有一个版本旁边有绿色的verified,把它换成这个版本

image没有找到verified,换成了这个版本,现在出现了Assets\Nova\Sources\Scripts\UIAssets\Nova\Sources\Scripts\InputFieldMinigameController.cs里的报错请问怎么办呀,麻烦了

@woct0rdho
Copy link
Collaborator Author

你发一下报错信息,如果东西多的话可以再开一个issue

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants