Buộc tải lại VS soution Explorer khi thêm c # Script mới qua Unity3d?


8

Khi tôi tạo tập lệnh C # ( Create -> C# Script) thông qua Unity3d hoặc xóa nó khỏi Unity3d- Visual Studiohiển thị cho tôi cửa sổ cảnh báo.

nhập mô tả hình ảnh ở đây

phiền thật đấy.

Có cách nào để buộc "Tải lại tất cả" trong giải pháp Explorer mà không có cửa sổ không?

Câu trả lời:


3

Vì vậy, những gì chúng ta có.

Nhà phát triển VS Tools for Unity team cho biết đây là một trong những yêu cầu tính năng được bình chọn nhiều nhất của họ. Và thật đáng ngạc nhiên là không tầm thường để sửa chữa, họ đang làm việc với nó.

Tuy nhiên, tôi đã tìm thấy một số kịch bản có thể sử dụng .. Tôi đã tìm thấy nó trên cộng đồng thống nhất Nga .

Rất cảm ơn DbIMok . Ngoài ra, ông đã đăng kịch bản này ngày hôm qua trên forum.unity3d.com

Cần tạo tập lệnh C # có tên là FileModDialogCloser.csvà đặt nó vàoEditor thư mục. Đây là mã:

using System;
using System.Runtime.InteropServices;
using UnityEditor;

[InitializeOnLoad]
public class FileModDialogCloser {

        [DllImport("user32.dll", EntryPoint = "FindWindow", SetLastError = true)]
        static extern IntPtr FindWindowByCaption(IntPtr ZeroOnly, string lpWindowName);

        [DllImport("user32.dll")]
        static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);

        [DllImport("user32.dll")]
        static extern void keybd_event(byte bVk, byte bScan, uint dwFlags, int dwExtraInfo);

        const string search = "File Modification Detected";
        static IntPtr hwnd;

        static void Check() { 
                hwnd = FindWindowByCaption(IntPtr.Zero, search);
                if ((int)hwnd != 0) {
                        ShowWindow(hwnd, 5);
                        keybd_event(0x0D, 0, 0, 0);
                }
        }

        static FileModDialogCloser() {
                EditorApplication.update += Check;
        }
}

Tự hỏi!

Nó hoạt động để tạo và xóa các tập lệnh C # thông qua Unity.

Như bạn có thể thấy mã có một dòng keybd_event(0x0D, 0, 0, 0);. Đây là mô phỏng nhấn Enternút. Và điều đó có nghĩa là Tải lại nhận ra. nếu bạn cần Tải lại Tất cả thì bạn phải làm như vậy:

keybd_event(0x09, 0, 0, 0);
keybd_event(0x0D, 0, 0, 0);

Đây là nhấn Tabnút và sau đó Enter.

NHANH CHÓNG: Khi bạn đang tạo / xóa tập lệnh: cửa sổ xác nhận mở, chạy keybd_event, cửa sổ sẽ đóng lại. Nó xảy ra rất nhanh, vì vậy bạn không cần phải nhấp vào bất kỳ nút nào. Nhưng dù sao bạn cũng có thể thấy cửa sổ này trong vài mili giây. Tôi nghĩ, bây giờ không có cách nào tốt hơn để làm điều đó.


NGOÀI RA:

Bạn có thể tạo tập lệnh C # cho các dự án Unity (không chỉ tập lệnh C # đơn giản) bên trong Visual Studio. Unitysẽ tự động thêm tệp mà không cần cửa sổ xác nhận.

Phương pháp đầu tiên (simlple) :

Nếu tôi hiểu đúng: khi bạn đang sử dụng Visual Studio Tools for Unity- công cụ đó đang tích hợp các mẫu đã có để tạo tập lệnh Unity C # vào VS. Vì vậy, nhấp chuột phải vào Giải pháp và chọn Add -> NewItem. Bạn có thể thấy hai mẫu cho Unity:

Làm thế nào để làm gì đó

Làm thế nào để làm gì đó

Tuy nhiên, các mẫu này có thể chứa nhiều thông tin không cần thiết, ví dụ như bình luận // Use this for initialization, // Update is called once per framev.v. Và, như @wondra trong các bình luận cho biết : bạn có thể thêm mẫu mục tùy chỉnh riêng cho các tập lệnh thống nhất.

Phương pháp thứ hai :

  • Tạo tập tin từ bất cứ đâu.

Làm thế nào để làm gì đó

  • Thêm bất cứ điều gì bạn muốn hoặc xóa smth., Hoặc ví dụ:

Làm thế nào để làm gì đó

  • Nhấp chuột File -> ExportTemplate

    Làm thế nào để làm gì đó

  • Chọn ItemTemlate

Làm thế nào để làm gì đó

  • Kiểm tra mẫu của bạn trong danh sách

Làm thế nào để làm gì đó

  • Nhấp vào Next,Next
  • Đặt tên và mô tả cho mẫu, nhấp Finish

Làm thế nào để làm gì đó

  • Mẫu sẽ được thêm vào c:\Users\YOUR_PROFILE\Documents\Visual Studio 2015\My Exported Templates\thư mục, cũng vào c:\Users\YOUR_PROFILE\Documents\Visual Studio 2015\Templates\ItemTemplates\. Sau khi VSkhởi động lại, bạn có thể thấy mẫu này trong danh sách giống như các VS Tools for Unitymẫu:

Làm thế nào để làm gì đó

Dưới đây là video giải thích .


Kết cuộc hạnh phúc!


0

Bạn có thể thêm tập lệnh mới trực tiếp trên Visual Studio trên thư mục dự định của bạn trong Unity. Trong trường hợp đó, bạn sẽ không cần tải lại. nhập mô tả hình ảnh ở đây

Nhưng bạn sẽ phải làm một cái gì đó khác. Tập lệnh mới trong Visual Studio sẽ có một số không gian tên được sử dụng mặc định. Bạn có thể thay đổi hoặc loại bỏ chúng. Ban đầu, bạn sẽ phải thêm using UnityEngine;các đặc quyền liên quan đến Unity. Bạn sẽ phải thêm void Start()hoặc void Update()tự mình nếu bạn cần. Lớp mới sẽ giống như: nhập mô tả hình ảnh ở đây


1
Cảm ơn, tôi biết điều đó. Nhưng đôi khi tôi muốn tạo / xóa các tập lệnh trong Unity
Alexey Shimansky

1
Bạn không phải thêm bằng UnityEngine hoặc start () / stop () theo cách thủ công, bạn có thể thêm mẫu mục tùy chỉnh riêng cho các tập lệnh thống nhất.
wonderra
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.