首页 > 解决方案 > Unity C# 脚本中的这个变量是什么?

问题描述

我是 Unity 新手,我正在通过阅读从 Unity Asset Store 下载的资产附带的脚本来研究它。这就是我学习新东西的方式,如果这对于阅读标准 Unity 编码教程的人来说应该很明显,请原谅我。

编码:

using System;
using UnityEngine;

namespace UnityStandardAssets._2D
{

    public class PlatformerCharacter2D : MonoBehaviour
    {

        // some variable declarations here

        private void FixedUpdate()
        {
            m_Grounded = false;
            Collider2D[] colliders = Physics2D.OverlapCircleAll(m_GroundCheck.position, k_GroundedRadius, m_WhatIsGround);
            for (int i = 0; i < colliders.Length; i++)
            {
                if (colliders[i].gameObject != gameObject)
                    m_Grounded = true;
            }
            m_Anim.SetBool("Ground", m_Grounded);
            m_Anim.SetFloat("vSpeed", m_Rigidbody2D.velocity.y);
        }

        // some function declarations here

    }
}

gameObject语句右边的变量是什么colliders[i].gameObject != gameObject

它没有在任何地方定义。我查看了脚本文件夹中的其他 C# 文件,所有这些文件都在 中namespace UnityStandardAssets._2D,并且变量gameObject没有在其中任何一个中定义。System它是or命名空间中的变量UnityEngine吗?

我在 Visual Studio 中使用了转到定义,它会弹出一个对话框,上面写着“无法导航到插入符号下的符号”。

标签: c#unity3d

解决方案


gameObject变量在Component继承的类中定义MonoBehaviour,每个Unity对象都应该继承。它指出了GameObject应该存在于Scene. 如果你不明白我刚才所说的,那么我强烈建议你从官方的 Unity 教程中学习,而不是仅仅阅读现有的代码。这些是 Unity 编程的基础知识,所以不知道这些会让你觉得你的学习很努力。


推荐阅读