unity3d脚本不能加载

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了unity3d脚本不能加载相关的知识,希望对你有一定的参考价值。

如图显示,本来所有脚本都好好的,然后我导入了一部分资源,现在我的脚本全部提示这个信息,不能使用了,求大神解决啊,急

这个很可能是因为你导入的资源中有重名的脚本。这样Unity不知道哪一个才是需要的脚本了。
可以尝试把新导入的内容删除掉重新导入(总之去掉重名文件就好)
重名文件代码,需要写到新的不重名脚本里面使用。
参考技术A 我自己的原因是有一个脚本文件中有一个应该有返回值的方法没有返回值,编译错误,所以才出现的这种情况,添加了返回值后就好了,所以希望遇到这个问题的同学看看是不是自己的脚本有错误,改正错误后看看是不是能够改善?

Chrome 未加载最新版本的网络工作者脚本(运行缓存版本)

【中文标题】Chrome 未加载最新版本的网络工作者脚本(运行缓存版本)【英文标题】:Chrome not loading latest version of web worker script (runs a cached version) 【发布时间】:2012-08-20 21:28:59 【问题描述】:

如果我编辑我的 web worker 脚本并刷新页面,web worker 脚本是一个缓存版本。我有理由相信它不是我的网络服务器,因为我可以立即加载所有其他文件的最新副本,即使重新启动网络服务器也不能解决问题。 如果我重新启动 chrome,它只会加载最新版本的 web worker 脚本,这是非常低效的,不用说! 即使我重新启动 chrome 也无法修复它。有什么办法可以解决这个问题吗?

【问题讨论】:

【参考方案1】:

在我的 Linux Chrome 上,我必须右键单击(或长按)重新加载按钮并选择“Empty Cache and Hard Reload”以获取最新版本

【讨论】:

要长按鼠标,直到菜单打开。 @Brian:我什至不知道那是在那里。 Ctrl+F5 出于某种原因无法正常工作,但效果很好。【参考方案2】:

您的网络服务器确定给定网络资源的可缓存程度,并且浏览器尝试尊重这些设置,缓存网络服务器表示可以缓存的资源,而不是缓存它说不应该缓存的内容。

如果你想改变它,你有以下选择:

    手动清除浏览器缓存 暂时关闭浏览器缓存。 暂时更改您的网络服务器上的设置以指示浏览器不要缓存 仅覆盖这一网页的缓存(在某些浏览器中为 shift-F5)以强制重新加载新内容 将查询参数添加到您希望每次加载新版本时更改的 Web Worker 脚本的 URL。

【讨论】:

Chrome的硬刷新不刷新worker,仍然使用缓存版本。 如果你仍然发现这个答案你的 serviceworker 没有更新,检查它是否包含错误。因为如果 serviceworker 包含 javascript 错误并且安装失败,旧版本仍将继续使用。 @BasGoossen - 如果您没有意识到,这个问题是关于网络工作者(在网页的不同线程中运行的脚本),而不是服务工作者(不同的事物)。 @jfriend00 哎呀,我的错。可能仍然适用于网络工作者吗?最近经常和服务人员一起工作,所以造成了混乱。 @BasGoossen - 没有 webWorker 功能可以在新脚本出错后自动加载旧脚本。【参考方案3】:

您是否尝试过重刷? Ctrl-r?

【讨论】:

Ctrl+R 是定期刷新,我认为... Ctrl+Shift+R,也许吧?【参考方案4】:

<script src="your_worker_path"></scripts> 添加到您的页头以强制更新缓存。 在if(typeof window == "undefined")... 中包含您的工作人员的代码,以避免它在页面重新加载时开始

【讨论】:

【参考方案5】:

在您的install 事件中,在调用event.waitUntil 之前添加:

if (self.skipWaiting)  self.skipWaiting(); 

Source

此外,您可以遵循以下开发工作流程:

    配置您的服务器以将您的 Service Worker 脚本作为不可缓存(缓存控制:无缓存)提供服务 对 Service Worker 脚本进行更改后:
      关闭除一个指向的选项卡之外的所有选项卡 到您的网络应用程序 点击 shift-reload 绕过 service worker 以确保剩余的选项卡不受控制 服务人员的 点击重新加载以让更新版本的 Service Worker 控制页面。

Source

【讨论】:

【参考方案6】:

您必须关闭所有打开此页面的选项卡。只打开一个 1 然后 Ctrl + Shift + R 刷新即可清除缓存。

【讨论】:

【参考方案7】:

我发现的作品是:

打开一个新选项卡,其中包含 SharedWorker 脚本的 URL, 例如"https://example.com/javascripts/mySharedWorker.js" 您应该会看到此选项卡包含脚本的缓存版本 如果您随后 Shift-Reload 那个选项卡,浏览器将强制更新缓存文件

Chrome 在“shift-reload”上重新加载“资源”似乎是……变量。


我希望你找到了这个:chrome://inspect/#workers。你可以在这里终止工人

【讨论】:

以上是关于unity3d脚本不能加载的主要内容,如果未能解决你的问题,请参考以下文章

unity3d 脚本越多效率越低吗?

如何在Unity3D使用 WWW 加载场景并显示进度条

编译后如何更改 AssemblyName 以在 Unity3d 中作为 mod 加载

unity3d 子弹脚本的问题。

unity3d中如何用脚本创建对象或者类

Unity3D中自带事件函数的执行顺序