Home
Yzngo
Cancel

Csharp Task

Task 任务是可能出现高延迟的工作单元,作用是产生结果值或者希望的副作用。 任务代表一个异步工作,而线程是做这件工作的工作者。 任务和委托类似,区别是委托同步执行,任务把委托从同步执行转变为异步执行,即从线程池中取一个工作者线程[[异步]]执行任务。 启动一个任务,控制几乎立刻返回给调用者,无论这个任务要执行多少工作。 Task类:System.Threading....

Csharpio流架构

Csharp迭代器

迭代器相关接口 IEnumerator 枚举数 IEnumerator 中包含了遍历集合必需的方法,允许使用迭代器模式而不是索引模式遍历元素集合。 枚举数相当于一个“游标”,记录了当前的遍历状态,每个游标独立于其它的游标。 通过枚举数确定第一个和下一个元素,就不需要事先知道元素总数,也不需要按照索引获取元素。 MoveNext 从集合的一个元素移动到下一个元...

Csharp枚举类型

enum 枚举 枚举用来定义常量值的集合。 枚举是不能继承的,所有值类型都不能继承。只是复用了继承的语法指定基础类型。 枚举可以是任意整型,在enum名称后加 : 指定整型类型 整型类型的位数决定了枚举的性能,及能容纳的值个数。 声明枚举时要提供 0 值代表 Unknown 或者 None // 其他可用类型有:byte(1B)、sbyte、short、usho...

物理关节

常用3D关节 固定关节 Fixed Joint 用于固定连接两个物体,不可滑动或旋转。例如可以表现抓住物体。 铰链关节 Hinge Joint 连接的两个物体可以以关节点为中心旋转。例如屋门。 弹簧关节 Spring Joint 用弹簧连接两个物体,两者太近或太远都会受到弹簧的回复力。 可以用弹性(Spring)和阻尼(Damper)调节弹的弹性。 ...

射线检测

射线检测 在游戏中发射一条虚拟射线 Ray,并观察该射线是否击中了某个物体,以及具体击中了该物体的哪个位置。 射线不只有简单的直线射线,还有球形射线,盒子射线,胶囊体射线等。 Raycast检测条件 被检测的对象一定要有 [[碰撞体]] 组件 射线检测的应用场景 判断角色是否落地。 判断子弹是否击中目标。 创建和发射射线 创建从原点向上的射线 ...

软体

软体 软体的外形会随着力和加速度的变化而变化,能够逼真还原碰撞发生的具体过程。 软体的使用场景 模拟皮球的反弹。 模拟车辆的碰撞损坏。 模拟水体的运动。 模拟柔软物体。

碰撞体

碰撞器 物体发生碰撞的两个必要条件 两个物体都要挂载 Collider 组件 其中一个物体是刚体,挂载 Rigidbody 组件 基本碰撞体 Box Collider (2D) Sphere Collider Capsule Collider Circle Collider 2D 组合碰撞体 子物体所挂载的碰撞体组件,也会成为父物体物理外形...

Csharp委托和事件

高阶函数 接收委托类型(函数指针)参数的函数称为高阶函数, 高阶函数不仅可以接收函数参数, 也可以返回新的函数. Delegate 委托即是在没有函数指针的C#托管代码中实现回调函数的功能。所有函数指针功能都以委托的方式来完成。委托可以视为一个更高级的函数指针。 委托是一种特殊的类,本质上是一种函数类型,可以定义在类的外面。 如果委托的声明嵌入到类中,就称为了嵌...

刚体

刚体参数 刚体 刚体是在任何力的作用下,体积和形状都不发生改变的物体,是一种理想模型。 添加Rigidbody组件可以使物体具备物理属性,使其运动符合物理规律。 通过刚体控制物体移动,多用于2D游戏,空洞骑士就是用的刚体驱动? 3D游戏有很多细节问题,上楼梯,容易卡在障碍物中等,不适于直接用刚体驱动。应该用[[角色控制器]]。 质心(重心) 如果受力的方向...