Basic C# Public Variable Help

I’m using the component code, FileBrowser.cs, from the wiki page.

The problem is, is that I have just started C# and I know in java it is -

var mySkin : GUISkin;

Also, My little knowledge of C# -

public GUISkin mySkin;

My Main issue is that the code above does not show up in inspector as a “Public Variable” and that I’ve tried alot to fix it. But I cant seem to find the problem

Here Is My Real Code : Cited Variable at line 18!

using UnityEngine;
using System;
using System.IO;
using System.Collections.Generic;
 
/*
	File browser for selecting files or folders at runtime.
 */
 
public enum FileBrowserType {
	File,
	Directory
}

 
public class FileBrowser {

public GUISkin GUI.skin;
 
	// Called when the user clicks cancel or select
	public delegate void FinishedCallback(string path);
	// Defaults to working directory
	public string CurrentDirectory {
		get {
			return m_currentDirectory;
		}
		set {
			SetNewDirectory(value);
			SwitchDirectoryNow();
		}
	}
	protected string m_currentDirectory;
	// Optional pattern for filtering selectable files/folders. See:
	// http://msdn.microsoft.com/en-us/library/wz42302f(v=VS.90).aspx
	// and
	// http://msdn.microsoft.com/en-us/library/6ff71z1w(v=VS.90).aspx
	public string SelectionPattern {
		get {
			return m_filePattern;
		}
		set {
			m_filePattern = value;
			ReadDirectoryContents();
		}
	}
	protected string m_filePattern;
 
	// Optional image for directories
	public Texture2D DirectoryImage {
		get {
			return m_directoryImage;
		}
		set {
			m_directoryImage = value;
			BuildContent();
		}
	}
	protected Texture2D m_directoryImage;
 
	// Optional image for files
	public Texture2D FileImage {
		get {
			return m_fileImage;
		}
		set {
			m_fileImage = value;
			BuildContent();
		}
	}
	protected Texture2D m_fileImage;
 
	// Browser type. Defaults to File, but can be set to Folder
	public FileBrowserType BrowserType {
		get {
			return m_browserType;
		}
		set {
			m_browserType = value;
			ReadDirectoryContents();
		}
	}
	protected FileBrowserType m_browserType;
	protected string m_newDirectory;
	protected string[] m_currentDirectoryParts;
 
	protected string[] m_files;
	protected GUIContent[] m_filesWithImages;
	protected int m_selectedFile;
 
	protected string[] m_nonMatchingFiles;
	protected GUIContent[] m_nonMatchingFilesWithImages;
	protected int m_selectedNonMatchingDirectory;
 
	protected string[] m_directories;
	protected GUIContent[] m_directoriesWithImages;
	protected int m_selectedDirectory;
 
	protected string[] m_nonMatchingDirectories;
	protected GUIContent[] m_nonMatchingDirectoriesWithImages;
 
	protected bool m_currentDirectoryMatches;
 
	protected GUIStyle CentredText {
		get {
			if (m_centredText == null) {
				m_centredText = new GUIStyle(GUI.skin.label);
				m_centredText.alignment = TextAnchor.MiddleLeft;
				m_centredText.fixedHeight = GUI.skin.button.fixedHeight;
			}
			return m_centredText;
		}
	}
	protected GUIStyle m_centredText;
 
	protected string m_name;
	protected Rect m_screenRect;
 
	protected Vector2 m_scrollPosition;
 
	protected FinishedCallback m_callback;
 
	// Browsers need at least a rect, name and callback
	public FileBrowser(Rect screenRect, string name, FinishedCallback callback) {
		m_name = name;
		m_screenRect = screenRect;
		m_browserType = FileBrowserType.File;
		m_callback = callback;
		SetNewDirectory(Directory.GetCurrentDirectory());
		SwitchDirectoryNow();
	}
 
	protected void SetNewDirectory(string directory) {
		m_newDirectory = directory;
	}
 
	protected void SwitchDirectoryNow() {
		if (m_newDirectory == null || m_currentDirectory == m_newDirectory) {
			return;
		}
		m_currentDirectory = m_newDirectory;
		m_scrollPosition = Vector2.zero;
		m_selectedDirectory = m_selectedNonMatchingDirectory = m_selectedFile = -1;
		ReadDirectoryContents();
	}
 
	protected void ReadDirectoryContents() {
		if (m_currentDirectory == "/") {
			m_currentDirectoryParts = new string[] {""};
			m_currentDirectoryMatches = false;
		} else {
			m_currentDirectoryParts = m_currentDirectory.Split(Path.DirectorySeparatorChar);
			if (SelectionPattern != null) {
				string[] generation = Directory.GetDirectories(
					Path.GetDirectoryName(m_currentDirectory),
					SelectionPattern
				);
				m_currentDirectoryMatches = Array.IndexOf(generation, m_currentDirectory) >= 0;
			} else {
				m_currentDirectoryMatches = false;
			}
		}
 
		if (BrowserType == FileBrowserType.File || SelectionPattern == null) {
			m_directories = Directory.GetDirectories(m_currentDirectory);
			m_nonMatchingDirectories = new string[0];
		} else {
			m_directories = Directory.GetDirectories(m_currentDirectory, SelectionPattern);
			var nonMatchingDirectories = new List<string>();
			foreach (string directoryPath in Directory.GetDirectories(m_currentDirectory)) {
				if (Array.IndexOf(m_directories, directoryPath) < 0) {
					nonMatchingDirectories.Add(directoryPath);
				}
			}
			m_nonMatchingDirectories = nonMatchingDirectories.ToArray();
			for (int i = 0; i < m_nonMatchingDirectories.Length; ++i) {
				int lastSeparator = m_nonMatchingDirectories*.LastIndexOf(Path.DirectorySeparatorChar);*

m_nonMatchingDirectories = m_nonMatchingDirectories*.Substring(lastSeparator + 1);
_ }_
Array.Sort(m_nonMatchingDirectories);
_ }*_

* for (int i = 0; i < m_directories.Length; ++i) {
m_directories = m_directories.Substring(m_directories.LastIndexOf(Path.DirectorySeparatorChar) + 1);
_ }*_

* if (BrowserType == FileBrowserType.Directory || SelectionPattern == null) {*
* m_files = Directory.GetFiles(m_currentDirectory);
m_nonMatchingFiles = new string[0];
_ } else {_
m_files = Directory.GetFiles(m_currentDirectory, SelectionPattern);
_ var nonMatchingFiles = new List();_
foreach (string filePath in Directory.GetFiles(m_currentDirectory)) {
if (Array.IndexOf(m_files, filePath) < 0) {
_ nonMatchingFiles.Add(filePath);
}
}_

m_nonMatchingFiles = nonMatchingFiles.ToArray();
for (int i = 0; i < m_nonMatchingFiles.Length; ++i) {
m_nonMatchingFiles = Path.GetFileName(m_nonMatchingFiles);
_ }_
Array.Sort(m_nonMatchingFiles);
_ }_
for (int i = 0; i < m_files.Length; ++i) {
m_files = Path.GetFileName(m_files);
_ }_
Array.Sort(m_files);
_ BuildContent();_
m_newDirectory = null;
_ }*_

* protected void BuildContent() {*
* m_directoriesWithImages = new GUIContent[m_directories.Length];
for (int i = 0; i < m_directoriesWithImages.Length; ++i) {
m_directoriesWithImages = new GUIContent(m_directories, DirectoryImage);
_ }_
m_nonMatchingDirectoriesWithImages = new GUIContent[m_nonMatchingDirectories.Length];
for (int i = 0; i < m_nonMatchingDirectoriesWithImages.Length; ++i) {
m_nonMatchingDirectoriesWithImages = new GUIContent(m_nonMatchingDirectories, DirectoryImage);
_ }_
m_filesWithImages = new GUIContent[m_files.Length];
for (int i = 0; i < m_filesWithImages.Length; ++i) {
m_filesWithImages = new GUIContent(m_files, FileImage);
_ }_
m_nonMatchingFilesWithImages = new GUIContent[m_nonMatchingFiles.Length];
for (int i = 0; i < m_nonMatchingFilesWithImages.Length; ++i) {
m_nonMatchingFilesWithImages = new GUIContent(m_nonMatchingFiles, FileImage);
_ }
}*_

* public void OnGUI() {*
* GUILayout.BeginArea(*
* m_screenRect,
m_name,
_ GUI.skin.window*
* );
GUILayout.BeginHorizontal();_

for (int parentIndex = 0; parentIndex < m_currentDirectoryParts.Length; ++parentIndex) {
if (parentIndex == m_currentDirectoryParts.Length - 1) {
GUILayout.Label(m_currentDirectoryParts[parentIndex], CentredText);
} else if (GUILayout.Button(m_currentDirectoryParts[parentIndex])) {
string parentDirectoryName = m_currentDirectory;
for (int i = m_currentDirectoryParts.Length - 1; i > parentIndex; --i) {
_ parentDirectoryName = Path.GetDirectoryName(parentDirectoryName);
}
SetNewDirectory(parentDirectoryName);
}
}
GUILayout.FlexibleSpace();
GUILayout.EndHorizontal();_

m_scrollPosition = GUILayout.BeginScrollView(
m_scrollPosition,
_ false,
true,
GUI.skin.horizontalScrollbar,
GUI.skin.verticalScrollbar,
GUI.skin.box*

* );_
m_selectedDirectory = GUILayoutx.SelectionList(
m_selectedDirectory,
m_directoriesWithImages,
_ DirectoryDoubleClickCallback*
* );_
if (m_selectedDirectory > -1) {
m_selectedFile = m_selectedNonMatchingDirectory = -1;
_ }_
m_selectedNonMatchingDirectory = GUILayoutx.SelectionList(
m_selectedNonMatchingDirectory,
m_nonMatchingDirectoriesWithImages,
_ NonMatchingDirectoryDoubleClickCallback*
* );_
if (m_selectedNonMatchingDirectory > -1) {
m_selectedDirectory = m_selectedFile = -1;
_ }
GUI.enabled = BrowserType == FileBrowserType.File;_

m_selectedFile = GUILayoutx.SelectionList(
m_selectedFile,
m_filesWithImages,
_ FileDoubleClickCallback*
* );
GUI.enabled = true;_

if (m_selectedFile > -1) {
m_selectedDirectory = m_selectedNonMatchingDirectory = -1;
_ }
GUI.enabled = false;
GUILayoutx.SelectionList(
-1,_

m_nonMatchingFilesWithImages*

* );*
* GUI.enabled = true;*
* GUILayout.EndScrollView();*
* GUILayout.BeginHorizontal();*
* GUILayout.FlexibleSpace();*
* if (GUILayout.Button(“Cancel”, GUILayout.Width(50))) {*
* m_callback(null);
_ }
if (BrowserType == FileBrowserType.File) {_

GUI.enabled = m_selectedFile > -1;
_ } else {
if (SelectionPattern == null) {_

GUI.enabled = m_selectedDirectory > -1;
_ } else {_
GUI.enabled = m_selectedDirectory > -1 ||
_ (_
m_currentDirectoryMatches &&
m_selectedNonMatchingDirectory == -1 &&
m_selectedFile == -1*

* );*
* }*
* }*
* if (GUILayout.Button(“Select”, GUILayout.Width(50))) {*
* if (BrowserType == FileBrowserType.File) {*
* m_callback(Path.Combine(m_currentDirectory, m_files[m_selectedFile]));
_ } else {_
if (m_selectedDirectory > -1) {
m_callback(Path.Combine(m_currentDirectory, m_directories[m_selectedDirectory]));
_ } else {_
m_callback(m_currentDirectory);
_ }
}
}
GUI.enabled = true;
GUILayout.EndHorizontal();
GUILayout.EndArea();*_

* if (Event.current.type == EventType.Repaint) {*
* SwitchDirectoryNow();*
* }*
* }*

* protected void FileDoubleClickCallback(int i) {*
* if (BrowserType == FileBrowserType.File) {*
m_callback(Path.Combine(m_currentDirectory, m_files*));
_ }
}*_

* protected void DirectoryDoubleClickCallback(int i) {*
SetNewDirectory(Path.Combine(m_currentDirectory, m_directories*));
_ }*_

* protected void NonMatchingDirectoryDoubleClickCallback(int i) {*
SetNewDirectory(Path.Combine(m_currentDirectory, m_nonMatchingDirectories*));
_ }*_

}

public GUISkin GUI.skin; // ??? maybe public GUISkin guiSkin instead

Sadly, Guys, You need to assign the class to MonoBehaviour.

Like -

public class FileBrowser : MonoBehaviour{

}

But even after that, I still get a error, on line 239 D:

As Outlaw noted above public GUISkin GUI.skin; wont play nice for you. the syntax for a C# variable decliration is

access specifor i.e. internal, private or public of which the defualt for objects declared outside a class i.e. classes, enums, etc. is internal while object declared within a class such as variables are private

next is the type i.e. String or in your case GUISkin

finaly is the name which may only contain letters and number as well as _ and must start with a letter or _

Valid options(MyVar, _MyVar _MyVar1)

Invalid options(1MyVar, My.Var)

As noted your variable decliration should be ‘public GUISkin GuiSkin’ or similar.