Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

ImmersiveVRTools.Common.Runtime: UnityMainThreadDispatcher can't be initialized on worker thread

Đang mở
#134 2 bình luận 0 reaction 0 người được giao Xem trên GitHub

Chưa có ai nhận issue này.

Đánh giá

Độ khó
4/5
Thời gian dự kiến
3-5 ngày
Mức phù hợp với người mới
35/100
Loại issue
Lỗi
Độ rõ ràng
Cần làm rõ
Mức độ hoạt động
Đình trệ
Công nghệ
csharp, unity
Lĩnh vực
devtools, game-dev

Hướng nghiên cứu

Bắt đầu với chuỗi lời gọi đã được báo cáo từ SafeInvoke(HotReloadFailed, changesAwaitingHotReload) qua ProjectWindowReloadStatusIndicatorDrawer.OnHotReloadFailed, UnityMainThreadDispatcher.Instance và SingletonBase. Xác định đường dẫn khởi tạo nào truy cập Unity APIs từ worker thread. Được xem là hoàn tất khi lỗi hot-reload đã báo cáo không còn gây ra ngoại lệ Unity API từ worker thread nữa và hành vi liên quan đã được xác minh trong Unity.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

Just got hit by an exception where code tried to get the .gameObject property from a worker thread. It was during SafeInvoke(HotReloadFailed, changesAwaitingHotReload); triggering ProjectWindowReloadStatusIndicatorDrawer.OnHotReloadFailed which in turn accesses UnityMainThreadDispatcher.Instance which in SingletonBase<T> will try to access stuff that should only be accessed on the main thread in case there is no singleton instance. Sorry for oral account of the callstack but my debugger got detached when I was poking around and CBA to repro. 😅

Anyway, maybe the main thread dispatcher needs to eaglery be inited from the main thread (RuntimeInitializeOnLoad?) if its means to be accessed from a worker, or just use another singleton implementation that doesn't hit Unity's API.

Ngôn ngữ chính
C#
Star
2.2k
Fork
169
Chỉ số merge pull request
Không có pull request nào được merge trong 30 ngày

Chuẩn bị môi trường

Dự án này không cung cấp dev container, Dockerfile hay hướng dẫn đóng góp, nên bạn cần tự thiết lập môi trường: hãy bắt đầu từ README và xem hướng dẫn đóng góp lần đầu của chúng tôi để biết các bước chung.

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của handzlikchris/FastScriptReload

Tất cả issue của handzlikchris/FastScriptReload

Issue tương tự

Thêm issue về C#

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.