Unity | 使用C#进行编程

转战 Unity3d,从玩游戏到开发游戏,这感觉真棒!

文 / 丁建雄
图 / Adnan Bubalo

小白是单纯为兴趣而写作的独立创作人,如果您喜欢小白的文章,欢迎关注、交流、分享(引用请链接到本文)。

征服

  1. 定义浮点数
float myNumber = 1.2f;

默认情况小数采用 double 类型,需要使用浮点数则需要在末尾加上f。

  1. C# 对大小写敏感!
  2. 常量声明:
const int constNum = 2;
readonly int readonlyNum = 2;

这两种形态都可以。

  1. 关于 foreach 的使用思考:
    对于流程控制、循环这一类使用都有其具体适用情况。传统的if.. else,用于选择结构,而衍生出的swich.. case,用于多选结构;while用于只知道结束标志,而不知道初始状态的循环;for用于明确知道开始和结束的循环;而foreach用于完整遍历,在C++中通常会使用vector方法寻找遍历的起点和终点,然后使用for进行循环。因此,foreach其实是一种复合结构,其在运算展开过程中进行了多步操作,具体而言:

foreach会将迭代器转换为IEnumerator。如果迭代器是引用类型,自然会分配在托管堆上;如果是值类型,值类型转换到接口类型是要装箱(boxing)的,需要在托管堆上分配内存并将数据拷贝过去,这样就会带来额外的内存开销,每帧约40B。

因此,性能开销主要是额外的内存开销,效率几乎没有差别。如果不是每帧都更新,同等情况下用foreach或许更方便。而且这个只是在老版本的mono编译器上的小BUG,使用新版VS编译器,就能彻底解决内存开销问题。关于这一问题的具体讨论,参照这篇博客:https://blog.csdn.net/crazygougou/article/details/47450923
以及知乎上的讨论帖:https://www.zhihu.com/question/30334270

  1. C#中,类名称和文件名称要保持一致。
  2. 默认的属性访问修饰符是private。
  3. 只有继承Monobehaviour的脚本才能使用unity提供的API。
  4. unity中的三个Update详解:
    update在每一帧调用一次,作用时间与帧率有关;FixedUpdate每一帧调用一次,但是其作用时间是固定的物理时间间隔,与帧率无关,常用于物理模型的更新;LateUpdate每一帧调用一次,与帧率有关,但是其总是在所有Update调用结束之后再调用,常用于相机的视角跟随。
    参考博客:https://www.cnblogs.com/qiaogaojian/p/5969968.html
  5. Start() 函数作用是在游戏的第一帧前调用,作为游戏初始化准备。
  6. unity 脚本生命周期与执行顺序参考:https://docs.unity3d.com/Manual/ExecutionOrder.html

结束语

开始学习Unity,主攻Unity3d AR 应用开发。将零散的知识组合成系统的知识网络,并达到灵活运用的程度,这其实也是对学习模式的一种探索。这个过程,收获多多,感悟多多。最重要的还是对感兴趣的事情的探索热情,热情不减,青春常在,哈哈 ~

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 111. [动画系统]如何将其他类型的动画转换成关键帧动画? 动画->点缓存->关键帧 112. [动画]Unit...
    胤醚貔貅阅读 14,535评论 3 89
  • 原文地址 http://www.fx114.net/qa-75-172454.aspx 使用Profiler工具...
    IongX阅读 11,259评论 1 11
  • 一:什么是协同程序?答:在主线程运行时同时开启另一段逻辑处理,来协助当前程序的执行。换句话说,开启协程就是开启一个...
    CrixalisAs阅读 6,348评论 1 7
  • 很多微商只注重第1次成交,这是错误的!就像交朋友一样,只注重第1次尽可能占对方更多便宜。那么对方还会跟你交往吗?不...
    小精灵凤儿阅读 2,548评论 0 0
  • 01 首先来看看什么是劣币驱逐良币。如果你知道是什么,可以直接跳到第二部分。 “劣币驱逐良币”是一条经济学法则,又...
    木木不会飞阅读 3,770评论 0 0