我刚刚制作了一个粒子系统,每1秒产生一个“熔岩”粒子(具有各种尺寸、颜色等)。我需要玩家在与这些熔岩粒子之一碰撞时重生(respawn()函数已经存在并且可以工作,现在只需要在正确的时间调用它)。我对Unity 答案和其他网站以及StackOverflow做了很多研究,但不明白如何做到这一点。
这是粒子系统现在的屏幕截图。我启用了触发器复选框并尝试更改一些内容,但没有成功:
当玩家触摸熔岩粒子时应该调用此代码:
private void OnParticleCollision(GameObject collision)
{
if (collision.CompareTag("Lava"))
{
StartCoroutine(TouchedLava());
}
}
Run Code Online (Sandbox Code Playgroud)
我在控制台中没有收到任何错误(即使在运行时)。
提前致谢!
我在这里按照Brackeys的教程制作了一个加载栏(后来做了一些更改)。我注意到当我加载一个关卡并且我的加载条出来时,它首先显示0%,等待,然后直接显示100% -没有中间值!。
我猜这可能是由于游戏已经使用了大量硬件而发生的一些延迟,并且没有为其余进程留下足够的电量,因为我尝试在做其他事情的同时加载它同时。
这是加载关卡并更改滑块值的代码:
public void LoadLevel(int sceneIndex) {
StartCoroutine(StartFadeThenLoadLevel(sceneIndex));
}
IEnumerator StartFadeThenLoadLevel(int sceneIndex)
{
yield return new WaitForSeconds(0.9f);
StartCoroutine(LoadAsynchronously(sceneIndex));
}
IEnumerator LoadAsynchronously(int sceneIndex) {
yield return null;
AsyncOperation operation = SceneManager.LoadSceneAsync(sceneIndex);
loadingScreen.SetActive(true);
chooseLevel.SetActive(false);
while (!operation.isDone) {
float progress = Mathf.Clamp01(operation.progress / 0.12f);
if (progress > 1) progress = 1;
slider.value = progress;
progressText.text = (int)(progress * 100f) + "%";
yield return null; …Run Code Online (Sandbox Code Playgroud) 在我的(2D)游戏中,我正在制作一个缩小相机的功能,并且我正在使用 cinemachine。有没有办法在脚本中做到这一点?我查看了文档并到处查看,但没有找到任何东西。只有如何改变视野(这对我不起作用)。
] 1
提前致谢!
在使用装饰器时,我在尝试将 TypeScript 编译为 JavaScript 时遇到了问题。我得到的错误是这样的:
app.ts:11:7 - 错误 TS1219:对装饰器的实验性支持是一项功能,可能会在未来版本中发生更改。在“tsconfig”或“jsconfig”中设置“experimentalDecorators”选项以删除此警告。
Run Code Online (Sandbox Code Playgroud)11 class Person { ~~~~~~
我一直在 StackOverflow 以及其他网站上搜索修复该问题的方法,但似乎没有任何方法对我有用。这是我已经尝试过的:
"experimentalDecorators": true中已经有"javascript.implicitProjectConfig.experimentalDecorators": true在我的设置文件中添加了无论如何,我一直收到同样的错误。我的 TypeScript 版本是4.1.2.
编辑:我通过此链接将我的项目上传到谷歌驱动器。
我已经使用Visual Studio (2017)很长时间了,主要用C#编程,用于 Unity 游戏。不过最近,我注意到它不再显示代码中的任何错误,或者至少是其中的大部分错误。我最初开始进行一些小测试,例如删除脚本中多次使用的变量。Visual Studio 没有显示任何错误,而在返回 Unity 时,它在控制台中显示了所有正确的错误(一如既往)。相反,如果我试图删除一个括号,它会在一段时间后到处显示错误。再一次,这真的很奇怪。
一天后,我仍在测试,我注意到如果我首先打开 Visual Studio,然后在“最近”中单击.sln文件,打开一个 Unity 项目的所有脚本,它立即显示所有正确的错误,就像它一直做的那样,以及(我认为)它应该如何做。我开始寻找我在那里看到的内容与打开.cs文件时看到的内容之间的一些差异(以不起作用的方式):
另一件事是,在“项目”和“调试”按钮(在顶部,打开下拉列表)之间,我没有“编译”按钮。
此外,在“调试”下拉菜单下,许多选项(如“开始调试”)不可用/禁用。
在左上角,在最左边的脚本名称下,我有“外部文件”而不是“Assembly-CSharp”
在应该有“调试”和“任何 CPU”的右侧,我有“连接”而不是“开始”(或类似的东西,我的系统语言不是英语,这些是翻译)
另一个(可能不太相关的)事情在它工作时已经改变了:
在没有实时看到错误的情况下进行编程需要更多时间,所以如果可能的话,我真的很想解决这个问题。有什么我必须激活的吗?我不小心按下了组合键吗?
提前致谢!:)