C#/Unity2D |无法访问 public class 方法
C#/Unity2D | Can't access public class method
我目前正在学习 Unity,有一个关于 C# 的问题。
我定义了一个 class 这样的:
using UnityEngine;
public class ObscuringItemFader : MonoBehaviour
{
private SpriteRenderer spriteRenderer;
private void Awake()
{
spriteRenderer = gameObject.GetComponent<SpriteRenderer>();
}
public void FadeOut()
{
StartCoroutine(FadeOutRoutine());
}
public void FadeIn()
{
StartCoroutine(FadeInRoutine());
}
创建它的一个实例可以完美地工作,但是当我调用 public 方法时,就像我在这里做的那样:
using UnityEngine;
public class TriggerObscuringItemFader : MonoBehaviour
{
private void OnTriggerEnter2D(Collider2D other)
{
ObscuringItemFader[] obscuringItemFader = other.gameObject.GetComponentsInChildren<ObscuringItemFader>();
if(obscuringItemFader.Length > 0)
{
for(int i = 0; i < obscuringItemFader.Length; i++)
{
obscuringItemFader[i].FadeOut();
}
}
}
它给我一个错误提示:“ObscuringItemFader”不包含 FadeOut 的定义。
有谁知道这里到底出了什么问题?希望不仅仅是我无法定位的愚蠢语法错误。
在此先感谢您!
我找不到此代码的逻辑或语法的任何错误(除了技术上缺少 class 结束括号)。
另一个脚本中可能存在另一个错误,导致其中一个脚本无法正确编译。
您可以 select 在 visual studio 中构建 > 构建解决方案,如果有任何其他编译错误导致无法应用对这些脚本的更改。
我解决了!
感谢@Kalib Crone,他向我保证没有 logic/syntax 错误,我决定从 VS Code 转移到 VS 2022 并查看它,出于某种原因,当我打开它时 ObscuringItemFader class 是空的Visual Studio!
当我在 VS Code 中重新打开它时,上面显示的代码又出现了,但是当我用它们打开文件时,Unity 和 VS 2022 似乎都看不到它。
我目前正在学习 Unity,有一个关于 C# 的问题。 我定义了一个 class 这样的:
using UnityEngine;
public class ObscuringItemFader : MonoBehaviour
{
private SpriteRenderer spriteRenderer;
private void Awake()
{
spriteRenderer = gameObject.GetComponent<SpriteRenderer>();
}
public void FadeOut()
{
StartCoroutine(FadeOutRoutine());
}
public void FadeIn()
{
StartCoroutine(FadeInRoutine());
}
创建它的一个实例可以完美地工作,但是当我调用 public 方法时,就像我在这里做的那样:
using UnityEngine;
public class TriggerObscuringItemFader : MonoBehaviour
{
private void OnTriggerEnter2D(Collider2D other)
{
ObscuringItemFader[] obscuringItemFader = other.gameObject.GetComponentsInChildren<ObscuringItemFader>();
if(obscuringItemFader.Length > 0)
{
for(int i = 0; i < obscuringItemFader.Length; i++)
{
obscuringItemFader[i].FadeOut();
}
}
}
它给我一个错误提示:“ObscuringItemFader”不包含 FadeOut 的定义。
有谁知道这里到底出了什么问题?希望不仅仅是我无法定位的愚蠢语法错误。
在此先感谢您!
我找不到此代码的逻辑或语法的任何错误(除了技术上缺少 class 结束括号)。
另一个脚本中可能存在另一个错误,导致其中一个脚本无法正确编译。
您可以 select 在 visual studio 中构建 > 构建解决方案,如果有任何其他编译错误导致无法应用对这些脚本的更改。
我解决了! 感谢@Kalib Crone,他向我保证没有 logic/syntax 错误,我决定从 VS Code 转移到 VS 2022 并查看它,出于某种原因,当我打开它时 ObscuringItemFader class 是空的Visual Studio!
当我在 VS Code 中重新打开它时,上面显示的代码又出现了,但是当我用它们打开文件时,Unity 和 VS 2022 似乎都看不到它。