一套全面的Unity开发扩展工具,包含数学计算、对象操作、坐标系转换和Tilemap处理等实用功能。 参考QFramework的链式调用拓展,达到又快又好的效果。
一时链式一时爽,一直链式一直爽()
- 数学计算: 向量运算、线性变换、三角函数、组合数学
- 对象操作: GameObject、Component、Transform的链式操作
- 坐标系转换: 2D坐标系在不同原点间的灵活转换
- Tilemap处理: 将Tilemap渲染为Texture2D
- 实例化构建器: 流畅的实例化参数配置
// 向量运算
var direction = pointA.DirectionTo(pointB).Normalize();
var distance = pointA.Distance(pointB);
var angle = vector.ToAngle();
// 线性变换
vector.Scale2D(new Vector2(2f, 1.5f), pivot);
vector.Rotate3D(45f, Vector3.up, centerPoint);
vector.Reflect2D(lineNormal, linePoint);
// 三角函数
var sinValue = 45f.Sin();
var radians = 90f.DegreesToRadians();
// 分量重排
var swapped = vector.Swizzle().Y().X().Z(); // 交换X和Y分量
// 排列组合计算
var combinations = Combinatorics.BinomialCoef(5, 2); // C(5,2)
var permutations = Combinatorics.Permutation(5, 2); // A(5,2)// 链式配置GameObject
gameObject
.Name("NewObject")
.Layer("UI")
.Tag("Player")
.Position(1, 2, 3)
.Show();
// 组件管理
gameObject.GetOrAddComponent<Rigidbody>();
gameObject.RemoveComponent<Collider>();
// Transform操作
transform
.LocalPosition(2, 3, 1)
.LocalScale(1.5f)
.LookAt(target)
.AsLastSibling();// 流畅的实例化配置
prefab.WithBuilder()
.WithPosition(1, 2, 3)
.WithRotation(0, 90, 0)
.WithParent(parentTransform)
.WithLayer("Default")
.WithName("Clone")
.WithActive(true)
.Build();// 在不同坐标系间转换
var screenPoint = new Vector2(100, 200);
var worldPoint = screenPoint
.FromTopLeft(screenRect)
.ToCenter();// 将Tilemap转换为Texture2D
var texture = tilemap.ToTexture2d();- 打开 Unity Package Manager
- 点击左上角的 + 按钮
- 选择 Add package from git URL
- 输入以下 URL:https://github.com/refactor-op/Refactor.Unity.Extensions.git
在项目的 Packages/manifest.json 文件中添加:
{
"dependencies": {
"cn.refactor.unity-extensions": "https://github.com/refactor-op/Refactor.Unity.Extensions.git",
...
}
}欢迎 PR 和 Issues!