Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
什么';这个变量在Unity C#脚本中是什么?_C#_Unity3d - Fatal编程技术网

什么';这个变量在Unity C#脚本中是什么?

什么';这个变量在Unity C#脚本中是什么?,c#,unity3d,C#,Unity3d,我是Unity的新手,我正在通过阅读从Unity资产商店下载的资产附带的脚本来学习Unity。这就是我学习新东西的方式,所以请原谅我,如果有人阅读了标准的Unity编码教程,就会明白这一点 守则: using System; using UnityEngine; namespace UnityStandardAssets._2D { public class PlatformerCharacter2D : MonoBehaviour { // some va

我是Unity的新手,我正在通过阅读从Unity资产商店下载的资产附带的脚本来学习Unity。这就是我学习新东西的方式,所以请原谅我,如果有人阅读了标准的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

    }
}
使用系统;
使用UnityEngine;
命名空间UnityStandardAssets.\u 2D
{
公共类平台角色2D:单一行为
{
//这里有一些变量声明
私有void FixedUpdate()
{
m_=错误;
Collider2D[]colliders=Physics2D.OverlappCircleall(m_GroundCheck.position,k_GroundedRadius,m_WhatIsGround);
对于(int i=0;i
碰撞器[i]右侧的
gameObject
变量是什么。gameObject!=游戏对象
语句

它在任何地方都没有定义。我查看了脚本文件夹中的其他C#文件,它们都在
名称空间UnityStandardAssets中。_2D
,变量
gameObject
没有在其中定义。它是
系统
UnityEngine
命名空间中的变量吗


我在VisualStudio中使用了Go-To定义,它会弹出一个对话框,说“无法导航到插入符号下的符号”。

它是在组件类中定义的,并继承它。 而你
使用UnityEngine以便您可以找到它

public class MonoBehaviour : Behaviour { //...}
public class Behaviour : Component {//...}

namespace UnityEngine
{
    //
    // Summary:
    //     Base class for everything attached to GameObjects.
    [NativeClass("Unity::Component")]
    [NativeHeader("Runtime/Export/Component.bindings.h")]
    [RequiredByNativeCode]
    public class Component : Object
    {
        public Component();

        //
        // Summary:
        //     The game object this component is attached to. A component is always attached
        //     to a game object.
        public GameObject gameObject { get; }
    }

//...
}

gameObject
变量在
Component
类中定义,该类由
monobhavior
继承,每个Unity对象都应该继承该类。它指向应该存在于
场景中的
游戏对象
实例。如果您不明白我刚才说的话,那么我强烈建议您学习官方的Unity教程,而不仅仅是阅读现有代码。这些是Unity编程的基础,因此不知道这一点会让你觉得学习很辛苦。

然后当你理解了它并使用MonoBehavior编写了一个完整的游戏时,你将有机会学习如何以新的方式在ECS和dotsThanks中编写所有内容。是的,我刚刚决定我应该这么做。我只是觉得很难找到Unity编码教程。我在网上看到的大多数教程都有“无编码”功能。这太糟糕了,我真的很想通过编码来接近他们的教程项目。“没有编码”绝对不是一件坏事!!在开始编码之前,您必须了解什么是
Unity3D
。这里是官方的unity教程页面:这就是我真正开始的地方。我完成了整个“从你的第一个项目开始”部分,但我做错的是在完成该部分后没有返回到该页面。相反,我去了别的地方,阅读教程博客之类的东西。我的错。“探索统一技能和特性”部分是我现在应该去的地方。谢谢。看看第一个怎么样?