【笔记】Unity编程(C#语言详解)

这篇具有很好参考价值的文章主要介绍了【笔记】Unity编程(C#语言详解)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一.为什么游戏需要脚本?

从灵魂、身体、行为三个层面来看,脚本(Script)为游戏注入了生动的元素。脚本代码并非独立运行的程序,它依赖于Unity引擎的运行环境,并需附加到特定对象上。在Unity脚本中,没有像传统程序中的"main"函数,而是用于更新游戏循环中的对象。Unity为脚本提供了API以便访问引擎功能,例如响应玩家输入、创建图形效果、控制物理行为、加载下一关卡以及处理逻辑和交互等。

1.创建脚本

脚本默认保存在资产(Assets)文件夹中,最佳实践是将其保存在“Script”文件夹下。创建脚本后,你将声明一个新的类,这个类将继承自MonoBehaviour。需要注意的是,脚本在运行时需要加载命名空间,就像引入"include"一样。类名应当是唯一的,且应与文件名匹配。在语法方面,每行代码都需要分号";"结尾,大括号"{}"必须前后匹配。

2.应用脚本

脚本的应用可以通过在Console窗口中打印文本来进行调试。在将脚本附加到对象时,你需要思考如何添加注释以及将其附加到哪个对象上。

3.编写后端脚本

Unity引擎的内部构建是使用本地的C/C++,但与之交互时使用了C#的包装器和开源.NET平台。脚本依赖于后端的执行,而Unity拥有两种脚本后端(默认情况下,Unity在各个平台上使用Mono后端):

  • Mono runtime:单运行时,实时Just-in-time(JIT)编译(.net)
  • IL2CPP:面向C++的中间语言,提前ahead-of-time(AOT)编译,整个应用程序在运行前进行编译

二.C#语言:编译型语言

如今,Unity只支持C#编程语言,它音译为“See Sharp”,是微软通用的编程语言。C#的含义是"C like Object Oriented Language",即“类似C的面向对象语言”,与Java语言竞争激烈。

C#是一种面向对象和面向组件的编程语言,基于类,它是强类型检查的语言,必须显式声明类型。

1.基本性质

它继承了C家族语言(C/C++/Java)的许多原则:

  • 有表示语句结尾的分号;
  • 圆括号“{}”用于对语句进行分组
  • “=”用于赋值,“==”用于比较
  • 没有全局变量或函数,所有内容都在类中声明
  • static静态成员可以替代全局变量和函数
  • 对指针的支持有限
  • 2.编写基本脚本

面向对象编程概念:类/实例、公共/私有、继承

  1. 类:成员变量+函数(Functions)
  2. 脚本:是以与其文件名相同的类命名的,一旦作为组件被附加到对象上,它就变成了类的一个实例。

在面试中,经常会问到类和实例之间的区别,简而言之,类是宏观的,而实例是具体的。

3.变量(Variables):

Public可从外部访问的公共变量,如其他script / inspector;

Private从外部无法访问私有变量;

Public公共变量显示在inspector中,必须带有类型,用大写字母分隔;

Private私有变量不是在play期间,可以在检查器中调整公共变量,但这不会改变脚本中的默认值,大家可以想一想为什么?

“Static”(静态)变量/函数在所有实例中共享,像全局变量/函数

可以根据需求设定public或private,变量名称应以小写字母开头

最好是用有意义的词来命名,例如:苹果数量写为appleCount

声明类型,指定初始值。所有变量均为默认为零值

组件和脚本中初始值之间的差异

播放过程中的更改无法保持

4.组件访问

在Unity中,使用"."来访问成员变量和函数,组件是GameObject的成员变量。在脚本附加到对象时,它可以访问其他组件和GameObject。一些常用的组件有:​​​​​​

  • Transform:对于所有游戏对象,变换
  • Renderer:渲染器,渲染对象、材质、纹理等
  • Rigidbody:刚体,一种物理财产
  • Collider:碰撞器,用于碰撞检测
  • Particle system:粒子系统,可以形成烟雾、爆炸、雪花等效果

5.函数(Functions)

*这一部分Unity面试时常考

函数按事件间歇调用,Unity将控制传递给一个函数,执行它,然后获取控制回位

函数名称应该以大写字母开头,带或不带变量列表

*初始化功能

  • Awake():在场景加载时为每个对象调用,被称为"BEFORE start"
  • Start():在第一帧或物理更新之前调用

(对每个对象都只调用一次)

*常规事件函数

  • Update():每一帧执行一次,1秒不一定执行几次处理帧更新,如对用户输入的响应渲染前更改状态
  • FixedUpdate():执行次数固定,是物理效果;在每次物理更新之前,以固定的时间间隔;会被Unity引擎自动调用

*物理功能

·物理引擎报告物理事件,如碰撞调用该对象脚本上的事件函数

  • OnCollisionEnter()    #两个物体开始碰撞的时候发生什么
  • OnCollisionStay()     #接触在一起的时候
  • OnCollisionExit()      #碰撞分离的时候

*创建和销毁对象

可以在场景中创建恒定数量的对象,如player、treasure等

游戏过程中会创建和删除一些其他对象

使用“Instantiate(实例化)”创建现有对象的新副本prefab及其所有部件

使用“Destroy(销毁)”在帧更新或拍摄时间延迟后

A:为什么函数里要写Time.deltatime:即按1秒执行60*speed*▲t(≈1/fps)

Q:作用是与FPS消除,使得所有用户的电脑都是1秒执行同样内容,速度差不多。

  • 6.脚本的事件顺序

脚本的事件按照特定顺序执行,这个顺序对于游戏开发至关重要。了解这个事件顺序可以帮助你更好地掌握脚本的使用。

以下是一个简要的脚本事件顺序流程图:

unity编程,笔记,unity,c#,游戏引擎,开发语言

通过理解脚本事件的执行顺序,你可以更好地掌握Unity游戏开发中的脚本编程,为你的游戏增添更多的交互与创意。无论你是初学者还是有经验的开发者,脚本都是连接你与游戏世界的纽带,帮助你创造出令人惊叹的虚拟体验。文章来源地址https://www.toymoban.com/news/detail-776432.html

到了这里,关于【笔记】Unity编程(C#语言详解)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C语言与游戏引擎插件开发:Unity、Unreal Engine中C插件的编写与集成(一)

    目录 一、引言 C语言在游戏开发中的重要地位与优势 游戏引擎插件机制与C语言的价值 二、C语言基础与游戏开发特性 C语言核心特性及其在游戏开发中的应用 游戏引擎API对接关键概念与技巧 C语言在游戏开发领域占据着无可替代的重要地位,尤其在应对高性能计算需求与底层

    2024年04月29日
    浏览(72)
  • C语言与游戏引擎插件开发:Unity、Unreal Engine中C插件的编写与集成(四)

    目录 一、C插件开发最佳实践与常见问题解析 性能优化: 跨平台兼容性: 版本管理与升级: 二、结论 C语言在游戏引擎插件开发中的关键作用与优势: 对开发者提出建议: 性能优化: 内存管理: 智能指针 :利用UE的 TSharedPtr 、 TWeakPtr 等智能指针管理动态内存,确保资源释

    2024年04月27日
    浏览(55)
  • Unity3D高级编程主程手记 学习笔记二:C#技术要点

    1.Untiy3D中C#的底层原理 Unity底层在运行C#程序时有两种机制:一种是Mono,另一种是IL2CPP。 Mono存在的目的是为了跨平台 ,因为最初C#只支持Windows。而IL可以看成是一种汇编语言且完全基于堆栈,必须运行在虚拟机上。也就是说C#会被编译器编译成IL,当需要他们时就会被实时的

    2024年02月08日
    浏览(64)
  • 十八、Unity游戏引擎入门

    1、下载     首先需要下载Unity Hub,下载网址:https://unity.com/cn。     然后在其中下载Unity编辑器并安装,可选择最新版本。     接着需要选择适合的开发环境,例如Android Studio或Xcode,以便进行手机游戏开发。在安装完Unity后,需要根据项目需求下载对应的模块和插件,例

    2024年02月16日
    浏览(79)
  • 使用团结引擎开发Unity 3D射击游戏

           本案例是初级案例,意在引导想使用unity的初级开发者能较快的入门,体验unity开发的方便性和简易性能。       本次我们将使用团结引擎进行开发,帮助想体验团结引擎的入门开发者进行较快的环境熟悉。      本游戏是一个俯视角度的射击游戏。主角始终位于屏幕

    2024年01月19日
    浏览(78)
  • Unity、UE、Cocos游戏开发引擎的区别

    Unity、Unreal Engine(UE)和Cocos引擎是三个常用的游戏开发引擎,它们在功能和特性上有一些区别。以下是它们之间的主要区别: 编程语言:Unity使用C#作为主要的编程语言,开发者可以使用C#脚本进行游戏逻辑编写。Unreal Engine主要使用C++作为编程语言,但也支持蓝图系统,允许

    2024年02月22日
    浏览(66)
  • Unity vs Godot :哪个游戏引擎更适合你?

    游戏引擎的选择对开发过程和最终产品质量有着重大影响。近年来,Godot和Unity这两款引擎受到广泛关注。本文将从多个维度对两者进行比较,以期为开发者提供正确的选择建议。 Godot和Unity都有各自的优势,没有绝对的好坏之分。Godot开源免费,上手简单,更适合2D和小型游戏

    2024年01月23日
    浏览(98)
  • 30分钟了解所有引擎组件,132个Unity 游戏引擎组件速通!【收藏 == 学会】

    🎬 博客主页:https://xiaoy.blog.csdn.net 🎥 本文由 呆呆敲代码的小Y 原创,首发于 CSDN 🙉 🎄 学习专栏推荐:Unity系统学习专栏 🌲 游戏制作专栏推荐:游戏制作 🌲Unity实战100例专栏推荐:Unity 实战100例 教程 🏅 欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正! 📆 未来很长

    2024年02月11日
    浏览(74)
  • 游戏开发的最佳编程语言及免费引擎推荐

    游戏至今仍然是人们重要的娱乐方式之一,那么哪种编程语言最适合游戏开发呢?这取决于要开发的游戏类型。例如,如果你想开发一个2D平台游戏,Lua脚本和JavaScript这样的语言比较方便。但是,如果想要开发大型3D第一人称射击游戏,那么用C++或C#之类的语言更加合适。 游

    2024年02月12日
    浏览(57)
  • Unity和UE4两大游戏引擎,你该如何选择?

    目录 游戏引擎 2 —— 难易区别 编程语言 3 —— 游戏产品 UE4制作的游戏产品  Unity制作的游戏产品  产品类型 5 —— 资源商店 6 —— 人才需求 平均薪资 总结      Unity和UE4都是游戏引擎,所谓游戏引擎就是集成了复杂功能的游戏开发软件,他们帮我们实现了复杂的底层逻

    2023年04月08日
    浏览(72)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包