簡體   English   中英

Unity - 如何重置 ExecuteInEditMode 腳本的檢查器值?

[英]Unity - How do I reset Inspector values for an ExecuteInEditMode script?

我想回到默認值而不必關閉並重新啟動 Unity。

當我在 VSC 中保存時,Inspector 中的字段保持不變。 讓它們重置的唯一方法是關閉並重新啟動 Unity。 我是否更改代碼、Unity 中的設置或 Visual Studio Code 中的設置以將 Inspector 面板和內容恢復為原始狀態?

在此處輸入圖片說明

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

[ExecuteInEditMode]
public class DebugGizmos : MonoBehaviour
{
 [SerializeField]
 private float innerRadius = 1.0f;

 [SerializeField]
 private float outerRadius = 10.0f;

 [SerializeField]
 private float angle = 10.0f;

 [SerializeField]
 private float gap = 10.0f;

 [SerializeField]
 private int segments = 10;

 [SerializeField]
 private float height = 1;

 // Debugging var for drawing Gizmos
 private Vector3 vLI, vLO, vUI, vUO;
 private List<Vector3> liaPts, loaPts, uiaPts, uoaPts;

 void OnDrawGizmos()
 {
     GenerateWedge(innerRadius, outerRadius, angle, gap, segments, height);
     // if (!Application.isPlaying) return;

     for (var i=0; i < segments; i++)
     {
         Gizmos.color = Color.red;
         Gizmos.DrawWireSphere(liaPts[i], .1f); //lowerInner
         Gizmos.color = Color.yellow;
         Gizmos.DrawWireSphere(uiaPts[i], .1f); //upperInner
         Gizmos.color = Color.green; 
         Gizmos.DrawWireSphere(loaPts[i], .1f); //lowerOuter
         Gizmos.color = Color.magenta;
         Gizmos.DrawWireSphere(uoaPts[i], .1f); //upperOuter
     }
 }

 ...and some helper functions.

在腳本組件所在的檢查器中右鍵單擊齒輪圖標。

然后點擊重置。

這應該使值回到它們的初始值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM