The variable `lastPosition' is assigned but its value is never used ?
Это предупреждение а не ошибка на функционал не влияет. Ты обьявил переменную и присвоил ей знаяение , но нигде в коде не использовал ее Отключить такие ошибки можно так
Код
#pragma warning disable 0168 // variable declared but not used. #pragma warning disable 0219 // variable assigned but not used. #pragma warning disable 0414 // private field assigned but not used.
Чёт не стыкуется. "Заказчик имеет большой опыт создания софта, сильная инженерная команда ", Ищем команду для реализации игры на Unity3d с нуля. Похоже на "Нам лень делать прототип, но если прокатит Вы нам не нужны".
beril, я, конечно, не хочу надоедать, но у меня не получается. Я скинул два этих скрипта в c/program files/unity/editor. В юнити вверху во вкладке windows не появилось CleanUpWindows
Он находит все что не включено в билд и показывает и может удалить их. Это все кидать в папку Editor там потом менюшка появится вверху "Window/CleanUpWindow" Накодил? Убери за собой! Инвентарь в Unity(UI) Инвентарь в Unity(GUI)
Спасибо за скрипты Lertmind , который увы уже не с нами Все работает, щас с WebGL портами работают этот плагин спасает + подогнал еще немного под свои требования. Главное бэкапы не забываем делать)
Цитата
beril, погуглил, всё засрано рекламной этого ассета Asset Hunter 2, есть его первая версия Automatically locate all unused unity assets, кроме того один хороший человек изменил код, я исправил пару мест: убрал запятую из строчки по которой ищутся использованные ассеты и улучшил вывод dll от Mono. Вот код, кидать в Editor: CleanUpWindow.cs
Код
using UnityEngine; using UnityEditor; using System.IO; using System.Collections; using System.Collections.Generic;
// Add menu named "CleanUpWindow" to the Window menu [MenuItem("Window/CleanUpWindow")] static void Init() { // Get existing open window or if none, make a new one: CleanUpWindow window = (CleanUpWindow)EditorWindow.GetWindow(typeof(CleanUpWindow), true, "Project Cleanup", true); window.Show(); }
void OnGUI() {
if (needToBuild) { GUI.color = Color.red; GUILayout.Label("Are you sure you remembered to build project? Because you really need to...", EditorStyles.boldLabel); }
GUILayout.BeginHorizontal(); if (!needToBuild) { if (GUILayout.Button("Clear EditorLog")) { clearEditorLog(); needToBuild = true; } }
GUI.color = Color.green; if (GUILayout.Button("Load EditorLog")) loadEditorLog();
if (groupEnabled) { GUILayout.Label("DEPENDENCIES"); for (int i = 0; i < includedDependencies.Count; i++) { EditorGUILayout.LabelField("", string.Format("{0} {1}", i, includedDependencies[i])); } }
if (GUILayout.Button("Selected Objects")) PrintSelected();
GUILayout.Space(10);
GUI.color = Color.red;
if (GUILayout.Button("Delete Selected", GUILayout.MinHeight(32))) DeleteSelected();
GUILayout.EndHorizontal(); for (int i = 0; i < objList.Value.Count; i++) { if (objList.Value[i] != null) { GUILayout.BeginHorizontal(); EditorGUILayout.ObjectField(objList.Value[i], typeof(Object), false, GUILayout.MinWidth(340)); toggles[objList.Key][i] = EditorGUILayout.Toggle(toggles[objList.Key][i]); GUILayout.EndHorizontal(); } } } } } }
EditorGUILayout.EndScrollView();
EditorGUILayout.EndVertical();
EditorGUILayout.EndHorizontal(); }
}
void PrintSelected() { foreach (KeyValuePair<string, List<Object>> kvp in unUsedArranged) { for (int i = 0; i < toggles[kvp.Key].Count; i++) { if (toggles[kvp.Key][i] == true) Debug.Log("" + unUsedArranged[kvp.Key][i]); } } }
void DeleteSelected() { if (!EditorUtility.DisplayDialog("Delete Unused Assets", "Are you sure you want to delete the selected assets? There is no going back.", "Delete", "Aaagh, stop!")) return;
foreach (KeyValuePair<string, List<Object>> kvp in unUsedArranged) { for (int i = 0; i < toggles[kvp.Key].Count; i++) { if (toggles[kvp.Key][i]) { AssetDatabase.DeleteAsset(AssetDatabase.GetAssetPath(unUsedArranged[kvp.Key][i])); } } }
AssetDatabase.Refresh();
loadEditorLog(); }
void ToggleAll(bool val) { foreach (KeyValuePair<string, List<bool>> kvp in toggles) { for (int i = 0; i < toggles[kvp.Key].Count; i++) toggles[kvp.Key][i] = val; } }
void ToggleKey(bool val, string key) { for (int i = 0; i < toggles[key].Count; i++) toggles[key][i] = val; }
try { // Have to use FileStream to get around sharing violations! //System.IO.File.WriteAllText(UnityEditorLogfile, string.Empty); FileStream FS = new FileStream(UnityEditorLogfile, FileMode.Create, FileAccess.ReadWrite, FileShare.ReadWrite); //StreamReader SR = new StreamReader(FS); StreamWriter SW = new StreamWriter(FS);
try { // Have to use FileStream to get around sharing violations! FileStream FS = new FileStream(UnityEditorLogfile, FileMode.Open, FileAccess.Read, FileShare.ReadWrite); StreamReader SR = new StreamReader(FS);
string line; while (!SR.EndOfStream && !(line = SR.ReadLine()).Contains("Mono dependencies included in the build")) {
} while (!SR.EndOfStream && (line = SR.ReadLine()) != "") { if (line.StartsWith("Dependency assembly - ")) { line = line.Substring("Dependency assembly - ".Length); } dependencyResult.Add(line); } while (!SR.EndOfStream && !(line = SR.ReadLine()).Contains("Used Assets")) {
} while (!SR.EndOfStream && (line = SR.ReadLine()) != "") {
Ох спасибо, добавил в закладки. Сам юзаю его в каждом проекте, мощный и незаменимый инструмент. Я думаю лучше в раздел Unity перенести его Накодил? Убери за собой! Инвентарь в Unity(UI) Инвентарь в Unity(GUI)
Не отличается, единственное , что версия .net там ограничена не самой новой версией. Ну и плюс Unity компетентно-ориентированный Накодил? Убери за собой! Инвентарь в Unity(UI) Инвентарь в Unity(GUI)