diff --git a/Assets/Artists/Scenes/Workshop.unity b/Assets/Artists/Scenes/Workshop.unity
index 608e6e5c..db1bc451 100644
--- a/Assets/Artists/Scenes/Workshop.unity
+++ b/Assets/Artists/Scenes/Workshop.unity
@@ -23292,7 +23292,7 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 627812465856688283, guid: c8d49b5a439dbc34dac722054bdd4d0f, type: 3}
propertyPath: m_IsActive
- value: 0
+ value: 1
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
diff --git a/Assets/BITKit/Unity/Scripts/Console/BITConsole.cs b/Assets/BITKit/Unity/Scripts/Console/BITConsole.cs
index 49966c6d..e63b3419 100644
--- a/Assets/BITKit/Unity/Scripts/Console/BITConsole.cs
+++ b/Assets/BITKit/Unity/Scripts/Console/BITConsole.cs
@@ -48,16 +48,6 @@ namespace BITKit.Console
private (MethodInfo[] methods,int currentIndex) _currentCommands;
- private void OnEnable()
- {
- Application.logMessageReceivedThreaded += LogCallback;
- }
-
- private void OnDisable()
- {
- Application.logMessageReceivedThreaded -= LogCallback;
- }
-
private void Start()
{
singleton = this;
@@ -88,6 +78,12 @@ namespace BITKit.Console
{
BIT4Log.OnNextLine -= OnNextLine;
});
+
+ Application.logMessageReceivedThreaded += LogCallback;
+ destroyCancellationToken.Register(() =>
+ {
+ Application.logMessageReceivedThreaded -= LogCallback;
+ });
}
private void OnNextLine()
@@ -99,7 +95,6 @@ namespace BITKit.Console
private void OnDestroy()
{
_inputActionGroup.allowInput.RemoveElement(this);
- Application.logMessageReceivedThreaded -= LogCallback;
}
public async void Toggle(bool active)
{
diff --git a/ProjectSettings/ProjectSettings.asset b/ProjectSettings/ProjectSettings.asset
index 32384db2..89b2cfd0 100644
--- a/ProjectSettings/ProjectSettings.asset
+++ b/ProjectSettings/ProjectSettings.asset
@@ -136,8 +136,9 @@ PlayerSettings:
vulkanEnableLateAcquireNextImage: 0
vulkanEnableCommandBufferRecycling: 1
loadStoreDebugModeEnabled: 0
- bundleVersion: 0.3
- preloadedAssets: []
+ bundleVersion: 0.6
+ preloadedAssets:
+ - {fileID: 11400000, guid: 6c3ca1ca26aa7d84eaa7fee9094d9164, type: 2}
metroInputSource: 0
wsaTransparentSwapchain: 0
m_HolographicPauseOnTrackingLoss: 1
diff --git a/README.md b/README.md
index 1dd77b63..abe5f3c1 100644
--- a/README.md
+++ b/README.md
@@ -11,7 +11,9 @@
通过直接在模型上绘制,对平面甚至任意表面进行切削仿真
支持多种笔刷,可通过Mod自定义笔刷
-支持多少模型,可通过Mod自定义模型
+
+支持多种模型,可通过Mod自定义模型
+
**原生支持Mod**,可以实现任何功能,例如:
* 接入真实切削机
* 模拟切削过程
@@ -29,9 +31,8 @@
## 类库:[iFactory-Cutting](http://server.bitfall.icu:3000/root/iFactory.Cutting.git)
-全平台应用支持
+仅Windows平台应用支持
-可能仅支持Window
- [X] Windows
- [ ] Android
- [ ] IOS (花钱买IOS开发者才行)
@@ -45,7 +46,8 @@
很明显,这个问题一开始涉及到了各种几何和计算机图形的问题,再经过各种尝试后,我们得到了相对最佳的解决方案:
基于自定义着色器`Alpha Clip`对绘制部分进行裁剪(指创建遮罩)实现模拟切削的效果
-通过对模型直接绘制,计算出绘制的点,并通过`Alpha Clip`着色器对模型进行裁剪,实现切削效果
+
+通过对模型材质直接绘制,计算出绘制的点,并通过`Alpha Clip`着色器对模型进行裁剪,实现切削效果
不仅仅需要出厂自带的模型和笔刷,我们还需要支持自定义笔刷和自定义模型,这就是`Mod支持`
@@ -64,13 +66,19 @@
## 当前问题
-### 在平面上绘制的一个圆,中间的部分不会被裁剪
-这不会涉及到物理,确实会出现一些与物理不符的情况,但是这是一个切削仿真,而不是物理仿真
+### 编译后,加载不了Mod,没有物料板
+目前编译后未收到报错,功能也无法使用,正在解决中
+
+### 在平面上绘制的一个圆,中间的部分不会被裁剪
+这不会涉及到物理,这相对来说只是画画
+
+所以会出现一些与物理不符的情况,因为这是一个切削仿真,而不是物理仿真
+
-试试洪水填充和扫描线填充相对于至少`1024 x 1024`px的图像来说性能消耗巨高
#### 为什么?
因为本质上就是画了一个圆环而不是圆圈,要圆圈得用`点笔刷`绘制一个半径足够的圆
+实时洪水填充和扫描线填充相对于至少`1024 x 1024`px的图像来说性能消耗巨高
#### 如何解决?
使用`Void笔刷`绘制圆,将应该裁剪的部分手动填充,`Void笔刷`不会被记录到导出的切削数据中
@@ -84,7 +92,7 @@
## 运行配置
-**CPU:** `Intelli 10400F`及以上
+**CPU:** `Intel 10400F`及以上
**GPU:** `GTX1050`及以上
@@ -110,6 +118,8 @@
- 不支持热更新和资源管理,一个发布就是几个G,一个小补丁都需要重新下载
- 非常复杂的图形API,需要自己实现各种各样的图形API
- 非常模糊的文档,例如对模型表面进行绘制需要自己实现太多的底层
+- pia,突然就卡死了
+- pia,突然又丢失绑定了
- 甚至连基本的`UI动态缩放`都没有,适配1080P就是1080P,适配2160P就是2160P,模糊得很
- 没有`UI Toolkit`这种现成的UI库,自带的UI库是上个世纪的产物
- 一个小改动都需要重新绑定,几乎等于重新配置`Rig`
@@ -150,6 +160,7 @@
## Bug清单
- [ ] 绘制圆环后,中间的部分不会被裁剪
- [ ] 通过各种方式更改Mod后可能会阻塞Mod线程
+- [ ] 编译后功能丢失,例如无物料板和无法加载Mod
## 安装方式与相关依赖
直接解压下载好的`zip`并运行`iFactory-Cutting.exe`即可
## 如何自行编译