sh để tự gọi chúng - tin tức bóng đá
VUI VẺ VỚI C# REPL
Phân loại: unity, c#
1var name = "PATH";
2var PATH = System.Environment.GetEnvironmentVariable(name);
3var MonoPath = Path.Combine(EditorApplication.applicationContentsPath, "Frameworks/Mono/bin");
4var value = PATH + ":" + MonoPath;
5var target = System.EnvironmentVariableTarget.Process;
6System.Environment.SetEnvironmentVariable(name, value, target); [keo hom nay](/post/298c1a48be9f0e1b/)
Ngoài ra, bạn cũng có thể tích hợp gmcs.exe và mono.exe vào dự án Unity, sau đó chỉnh sửa gmcs.bat và gmcs.sh để tự gọi chúng. Giải pháp này đã được thử nghiệm thành công trên Windows, macOS và Linux. Tuy nhiên, việc gọi gmcs thông qua shell trên Android vẫn chưa khả thi, đây là một điểm đáng tiếc.
Trở lại chủ đề chính, ngoài CodeDom, trước đây tôi đã nhắc đến việc sử dụng Mono.CSharp.Evaluator để chạy lệnh. Trong quá trình tìm hiểu, tôi phát hiện ra Mono REPL - một công cụ rất thú vị. Từ đó, tôi đã tạo ra một ứng dụng nhỏ trong Unity nhằm tái hiện trải nghiệm Mono REPL trên điện thoại. Mono REPL dựa trên Mono.CSharp.Evaluator, có khả năng phân biệt giữa các câu lệnh tính toán giá trị và câu lệnh thực thi. Do đó, nó có thể quyết định nên sử dụng Mono.CSharp.Evaluator.Evaluate hay Mono.CSharp.Evaluator.Run. Hiện tại, phiên bản của tôi chưa bao gồm tính năng này mà chỉ đơn giản kết hợp giao diện Unity UI theo chuẩn Material Design với Mono.CSharp.Evaluator.Evaluate để thực thi câu lệnh. Vì vậy, nếu bạn chạy:
1var x = 1 + 2;
sẽ xảy ra lỗi. Ngược lại, đoạn mã sau sẽ hoạt động bình thường:
1var x = 1 + 2;
2x;
Bởi vì câu lệnh cuối cùng đang yêu cầu giá trị của x
, phù hợp với yêu cầu trả về giá trị của Evaluate()
. Hai tính năng quan trọng là gợi ý mã và xử lý lỗi vẫn chưa được triển khai, nhưng tôi rất háo hức để tiếp tục khám phá thêm.
Ứng dụng có tên là Cyan, bạn có thể tải về từ liên kết Google Play: Cyan on Google Play. Lưu ý rằng không có phiên bản dành cho iOS, bởi vì Mono.CSharp không thể hoạt động trong điều kiện AOT (Ahead-of-Time Compilation), đặc biệt sau khi chuyển sang IL2CPP thì không thể thực hiện các cuộc gọi động được nữa.
Chúc các bạn có những trải nghiệm tin tức bóng đá thú vị! :-) s6666 đăng nhập