小编Enr*_*vis的帖子

检测玩家何时与粒子碰撞 - Unity

我刚刚制作了一个粒子系统,每1秒产生一个“熔岩”粒子(具有各种尺寸颜色等)。我需要玩家在与这些熔岩粒子之一碰撞时重生respawn()函数已经存在并且可以工作,现在只需要在正确的时间调用它)。我对Unity 答案和其他网站以及StackOverflow做了很多研究,但不明白如何做到这一点。

这是粒子系统现在的屏幕截图。我启用了触发器复选框并尝试更改一些内容,但没有成功:

在此输入图像描述

当玩家触摸熔岩粒子时应该调用此代码:

private void OnParticleCollision(GameObject collision)
{
    if (collision.CompareTag("Lava"))
    {
        StartCoroutine(TouchedLava());
    }
}
Run Code Online (Sandbox Code Playgroud)

我在控制台中没有收到任何错误(即使在运行时)。

提前致谢!

c# unity-game-engine

6
推荐指数
1
解决办法
1万
查看次数

Unity - 加载栏经常直接从 0% 到 100%,同时加载 (C#)

我在这里按照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)

c# unity-game-engine

5
推荐指数
1
解决办法
2162
查看次数

在脚本中更改 Cinemachine 的摄像机距离

在我的(2D)游戏中,我正在制作一个缩小相机的功能,并且我正在使用 cinemachine。有没有办法在脚本中做到这一点?我查看了文档并到处查看,但没有找到任何东西。只有如何改变视野(这对我不起作用)。

![在此输入图像描述] 1

提前致谢!

c# unity-game-engine

5
推荐指数
2
解决办法
1万
查看次数

在 Visual Studio Code 中使用装饰器时出现错误

在使用装饰器时,我在尝试将 TypeScript 编译为 JavaScript 时遇到了问题。我得到的错误是这样的:

app.ts:11:7 - 错误 TS1219:对装饰器的实验性支持是一项功能,可能会在未来版本中发生更改。在“tsconfig”或“jsconfig”中设置“experimentalDecorators”选项以删除此警告。

11 class Person {
         ~~~~~~
Run Code Online (Sandbox Code Playgroud)

我一直在 StackOverflow 以及其他网站上搜索修复该问题的方法,但似乎没有任何方法对我有用。这是我已经尝试过的:

  • 我的tsconfig.json文件"experimentalDecorators": true中已经有
  • "javascript.implicitProjectConfig.experimentalDecorators": true在我的设置文件中添加了
  • 我尝试禁用所有 VSCode 扩展
  • 我尝试多次重新启动 VSCode 并以多种方式打开项目文件夹

无论如何,我一直收到同样的错误。我的 TypeScript 版本是4.1.2.

编辑:我通过此链接将我的项目上传到谷歌驱动器。

javascript typescript visual-studio-code

4
推荐指数
1
解决办法
2012
查看次数

Visual Studio 不再显示代码中的错误

我已经使用Visual Studio (2017)很长时间了,主要用C#编程,用于 Unity 游戏。不过最近,我注意到它不再显示代码中的任何错误,或者至少是其中的大部分错误。我最初开始进行一些小测试,例如删除脚本中多次使用的变量。Visual Studio 没有显示任何错误,而在返回 Unity 时,它在控制台中显示了所有正确的错误(一如既往)。相反,如果我试图删除一个括号,它会在一段时间后到处显示错误。再一次,这真的很奇怪。

一天后,我仍在测试,我注意到如果我首先打开 Visual Studio,然后在“最近”中单击.sln文件,打开一个 Unity 项目的所有脚本,它立即显示所有正确的错误,就像它一直做的那样,以及(我认为)它应该如何做。我开始寻找我在那里看到的内容与打开.cs文件时看到的内容之间的一些差异(以不起作用的方式):

  • 在顶部,我没有看到“调试”“任何 CPU”在工作时的状态:

在此处输入图片说明 在此处输入图片说明

  • 另一件事是,在“项目”“调试”按钮(在顶部,打开下拉列表)之间,我没有“编译”按钮。

  • 此外,在“调试”下拉菜单下,许多选项(如“开始调试”)不可用/禁用。

  • 在左上角,在最左边的脚本名称下,我有“外部文件”而不是“Assembly-CSharp”

  • 在应该有“调试”“任何 CPU”的右侧,我有“连接”而不是“开始”(或类似的东西,我的系统语言不是英语,这些是翻译)

另一个(可能不太相关的)事情在它工作时已经改变了:

  • 我已经安装了Visual Studio 2019,并在几分钟后卸载(我一直更喜欢 Visual Studio 2017!)。

在没有实时看到错误的情况下进行编程需要更多时间,所以如果可能的话,我真的很想解决这个问题。有什么我必须激活的吗?我不小心按下了组合键吗?

提前致谢!:)

c# unity-game-engine visual-studio

3
推荐指数
1
解决办法
5965
查看次数