unity

unity技术材料

Unity中迭代器和协程的部分概念

大前端

Unity中迭代器和协程的部分概念

协程本质上也是一个迭代器,为了记录一下今天对二者的学习和巩固记录一下今天的知识点。 首先了解一下迭代器的知识: 迭代器模式(Iterator),提供一种方法顺序访问一个聚合对象中的各种元素,而又不暴露该对象的内部表示。C#中使用IEnumerator接口实现,Java中使用Iterator接口实现,其中原理都差不多,下面我就用C#代码来演示下迭代器的实现。 namespace System.Collections//这是C#的迭代器底层方法 { public interface IEnumerator { object Current { get; } // bool MoveNext(); void Reset(); } } Current 是作为返回的正确对象,获取当前下标所指向的对象。如我们foreach时遍历返回的那个正确对象 MoveNext 即是遍历该对象时,检查并确认下一个位置的对象是否为空,如foreach时编译器来判断是否遍历到最后一个 Reset 是我们在多次使用迭代器

unity中C#反射的底层原理

unity

unity中C#反射的底层原理

五一节要劳逸结合,玩了一天晚上也要学习~毕设也忙完了,最近应该会开始更新博客了。 记录一下今晚公开课学到的unity中c#的底层原理 首先看一看反射的概念 在程序运行时,动态获取 程序集, 类型(class,interface)和类型的成员信息(方法,字段,属性等)。 在程序运行时,动态创建 类型实例, 以及调用和方法 动态创建出来的 类型实例的成员。 首先我们需要明白内存机制,四大内存空间(堆、栈、全局变量、代码数据);借由类的生成来记录一下吧,类是程序员自己创建的所以自然内存是在堆内,而类当中的方法和非全局变量却不是在堆内的,而是存储在代码数据块内的。 Mycalss t = new Myclass(); t.equalnum(1,2,"3"); public void equalnum(int a,int

unity基础学习十一,C#高级属性:特性

unity基础学习十一,C#高级属性:特性

C# 特性(Attribute) 特性,是用来给代码添加额外信息的一种手段,我们通常是将特性标记到方法、类或者属性上,在使用的这些结构的时候,通过反射这一非常高级的技术,获取它们通过特性标记的信息(在编译好的程序集中,作为元数据),从而进行某些特殊的处理。 .Net 框架提供了两种类型的特性:预定义特性和自定义特性。 规定特性(Attribute) 规定特性(Attribute)的语法如下: [attribute(positional_parameters, name_parameter = value, ...)] element 使用: 特性的使用很简单,在结构声明的上一行,用"[]"扩起特性类名即可: 系统也给我们提供了一些特性,比如Serializable 标记一个可序列化的类,DebuggerStepThrough设置方法在调试时为跳过的状态。 [Serializable] class Sunshine{...} 它其实是省略了(),如果使用特性的其它的构造函数传递(每个自定义特性类必须至少有一个构造函数) 预定义特性 Conditional 可以为一个方法添加Condi

unity基础学习十,c#垃圾回收机制(GC)

算法

unity基础学习十,c#垃圾回收机制(GC)

# 1.什么是GC GC如其名,就是垃圾收集,当然这里仅就内存而言。Garbage Collector(垃圾收集器,在不至于混淆的情况下也成为GC)以**应用程序的root为基础**,遍历应用程序在**Heap上动态分配的所有对象**,通过**识别它们是否被引用来确定哪些对象**是已经死亡的、哪些仍需要被使用。已经不再被应用程序的root或者别的对象所引用的对象就是已经死亡的对象,即所谓的垃圾,需要被回收。这就是GC工作的原理。为了实现这个原理,GC有多种算法。比较常见的算法有

unity屏幕适配以及坐标点适配

unity

unity屏幕适配以及坐标点适配

好久没更新了,最近忙着实习和毕设,虽然还没忙完但是也来更新一些在工作中学到的一些知识吧。今天记录一下如何设计屏幕适配和坐标点适配的功能。 首先我们需要确认自己的原图和背景的长宽比例,然后获取屏幕的长宽比例,比较屏幕比例与原比例的大小,从而来确定是长度适配还是宽度适配。 书写一下简单的代码方便理解思路。 public float picturexy = picture.x / picture.y; public float screenxy = UnityEngine.Screen.width / UnityEngine.Screen.

“A Survey on Cloud Gaming: Future of Computer Games”学习笔记

unity

“A Survey on Cloud Gaming: Future of Computer Games”学习笔记

云游戏面临的挑战 尽管云游戏有着巨大的机遇,但在充分发挥潜力吸引更多玩家、游戏开发商和服务提供商之前,研究界必须应对几个关键挑战。 1. 构建平台和测试平台 全面性能评估:包括服务质量(QoS)指标(如能耗和网络指标)和体验质量(QoE)指标(如玩家感知体验)的测量。 设计测试场景 进行评估 构建这些平台和测试平台、设计测试场景并进行评估需要付出巨大的努力,而分析QoS和QoE指标之间复杂的相互作用则更加困难。

DAN游戏客户端面经

DAN游戏客户端面经

## DAN游戏客户端实习面经 1. 数组和链表的优缺点 2. 开发过程中对链表的具体使用 3. 了解几个排序算法?冒泡和快排的区别,二者在什么情况下使用 4. 虚函数的知识 5. C语言指针与引用类型的区别 6. 指针和结构体的区别以及二者调用时只是语法不同还是底层原理有区别 总体感觉面试体验还行,只不过每个问题都还深入的去询问了(底层原理啊,内存空间在哪里,以及指针地址的原理等等),答得太勉强了,明明是U3D客户端却不问C#和unity还有项目经历=.=把我给问懵了。还是太菜了涉及到这么底层的东西之后发现自己菜的体无完肤。继续加油吧。

Houdini数字化资产生成路面初步探究(一)

unity

Houdini数字化资产生成路面初步探究(一)

Houdini数字化资产生成路面初步探究 1. 引言 在游戏开发中,创建高质量的道路模型是一个复杂且耗时的过程。本文通过使用Houdini,探索如何快速生成具有随机性和曲折效果的三维道路,并将其导出到Unity项目中。 2. 操作步骤 2.1 创建基础路径点 打开Houdini并创建一个新的HIP文件。 使用Points from VEX节点,通过编写VEX代码生成路径点。例如:@P = set(0, i*0.5, 0); 将这些点排列成所需的道路形状。 2.2 创建道路网 使用Polyline to Mesh节点将路径点转换为多边形网格。 调整多边形的宽度和高度,以创建基础道路模型。 2.3 添加随机性 使用Attribute Randomize节点对路的宽度进行随机处理,增加曲折效果。@w = rand(@P); 2.4 配置UV 使用Map Projection节点将UV坐标映射到道路模型上,确保贴图正确显示。