unity写代码时为什么有的变量或者类前面需要加new,而有得

值类型和引用类型是C#中的两种基本类型。值类型保存的是具体值,而引用类型则保存对象的引用。值类型不能是空的,而引用类型可以是空的。当引用类型未初始化时,可以直接使用,但尝试操作它会抛出Null Reference Exception。构造器和构造函数是创建新对象的两种方式。构造函数是对构造器的封装,内部会new一...
unity写代码时为什么有的变量或者类前面需要加new,而有得
在Unity开发中,使用new关键字是创建对象的一种方法。不过,有的情况下你可能不需要使用new。

不使用new的原因有两种。一种是使用一个函数返回的对象作为新对象。例如,某些函数在返回时会创建一个对象,这时候你可以直接获取这个返回值,不需要额外的new操作。

另一种情况是在声明对象时没有使用new。在Unity中,一些类如GameObject是引用类型,引用类型可以在声明时不做初始化。这与值类型(如int、float)不同,值类型必须在声明时初始化,否则会抛出错误。

值类型和引用类型是C#中的两种基本类型。值类型保存的是具体值,而引用类型则保存对象的引用。值类型不能是空的,而引用类型可以是空的。当引用类型未初始化时,可以直接使用,但尝试操作它会抛出Null Reference Exception。

构造器和构造函数是创建新对象的两种方式。构造函数是对构造器的封装,内部会new一个对象,然后再进行一些操作,最后返回这个对象。在使用构造函数创建对象时,你不需要额外的new操作,因为函数内部已经帮你创建并初始化了对象。

理解这些概念有助于你更好地在Unity中使用C#。当你遇到需要创建对象的场景时,可以根据对象的类型(值类型或引用类型)和创建方式(构造器或构造函数)来决定是否使用new。2024-08-26
mengvlog 阅读 7 次 更新于 2025-07-22 07:14:26 我来答关注问题0
  •  深空游戏 最近自学unity3D写C#脚本时总是出错红色字到处都是。我是按照视频抄写下来的脚本为什么说我出错

    在自学Unity3D编写C#脚本时,经常会遇到一些红色标记,这是Unity编译器在提示错误。通常,这些错误是由于代码中缺少必要的引用或命名空间导致的。例如,如果你的脚本中使用了Unity引擎提供的某些功能,而没有引入相应的命名空间,编译器将无法识别这些功能,从而导致错误提示。比如,如果你需要使用Unity中的Tran...

  •  百度网友992355c37 unity 输入向量moveDir的y轴为0,为什么运行时y轴会随物体运动递增?

    在上述代码中,向量moveDir只在实例化时被赋值一次,其y轴值为0。然而,在之后的代码中,transform.position随着时间的推移会不断发生变化,因此向量moveDir乘以的moveSpeed和Time.deltaTime的乘积也在不断地改变,从而导致物体的运动方向不断发生变化。这种变化可能会使物体看起来在垂直方向上移动,但实际...

  •  阿暄生活 如何解决unity中C#出现中文乱码的问题

    使用/* xx */格式注释:虽然注释格式通常不会导致乱码,但为了确保代码的可读性和一致性,建议使用/* xx */这种块注释格式,而非//这种行注释格式,尤其是在包含非ASCII字符的注释中。不过,这一点并非解决乱码的直接方法,但可以作为编写规范的一部分。通过以上步骤,通常可以解决Unity中C#代码出现中文...

  • jimodeduzou unity3d代码问题

    这可能是你用了不同编辑器导致行尾符号不同的问题,比如mono和VS行尾符号不同 你可以设置统一。VS保存的文件每行以‘CRLF’结尾(window平台文件),而MonoDevelop保存的是‘LF’结尾(Unix平台)

  • xuiopp321 unity3d中用js写脚本为什么不能new一个类?我的代码这样写出现了以下错误,请问该怎么改?

    你这几个错误并非new一个类的问题,从上面的代码看有两个错误,前面俩错误是因为你用js直接创建了二维数组,而unity的js并不知道创建二维数组,需要从C#写个方法来返回数组,再直接调用,具体的请百度。。。后面的两个错误就明显了,在 var card:Object这个地方,你创建这个card本来是Card类型,你后面...

檬味博客在线解答立即免费咨询

报错相关话题

Copyright © 2023 WWW.MENGVLOG.COM - 檬味博客
返回顶部