您的位置:首页 > 移动开发 > Unity3D

Unity 扩展菜单命令

2015-10-28 11:36 344 查看
//********************************************************************
// 文件名: ApplicationEditor.cs
// 描述: 菜单命令打开场景
// 作者: 李伟
// 创建时间: 2015-03-26
//
// 修改历史:
// 2015-03-26 李伟创建
// 2015-10-28 windows本地交互
//********************************************************************

using UnityEngine;
using System.Collections;
using UnityEditor;
using System.Diagnostics;
using System.IO;
using System;

public class ApplicationEditor : Editor
{

#region OepnScene
enum SceneType
{
Login = 0,
Main = 1,
Test = 2,

Max
}

[SerializeField]
private static SceneType currentSceneType = SceneType.Max;

[MenuItem("OepnScene/Login/Open")]
public static void OpenLoginScene()
{
if(currentSceneType != SceneType.Login)
{
Open(SceneType.Login);
}
}

[MenuItem("OepnScene/Login/Open Run")]
public static void OpenLoginRunScene()
{
OpenLoginScene ();

if(!EditorApplication.isPlaying)
{
EditorApplication.isPlaying = true;
}
}

[MenuItem("OepnScene/Main/Open")]
public static void OpenMainScene()
{
if(currentSceneType != SceneType.Main)
{
Open(SceneType.Main);
}
}

[MenuItem("OepnScene/Main/Open Run")]
public static void OpenMainRunScene()
{
if(currentSceneType != SceneType.Main)
{
Open(SceneType.Main);
}

if(!EditorApplication.isPlaying)
{
EditorApplication.isPlaying = true;
}
}

[MenuItem("OepnScene/Test")]
public static void OpenTestScene()
{
if(currentSceneType != SceneType.Test)
{
Open(SceneType.Test);
}
}

private static void Open(SceneType sceneType)
{
if(EditorApplication.SaveCurrentSceneIfUserWantsTo())
{
currentSceneType = sceneType;

int sceneId = (int)sceneType;

if(sceneId >= 0 && sceneId < EditorBuildSettings.scenes.Length)
{
EditorApplication.OpenScene (EditorBuildSettings.scenes [sceneId].path);
}
}
}
#endregion

#region AddChild
[MenuItem("GameObject/Add Child")]
static void AddChild()
{
var transforms = Selection.GetTransforms(SelectionMode.TopLevel | SelectionMode.OnlyUserModifiable);

foreach (var transform in transforms)
{
GameObject child = new GameObject("_child");
child.transform.parent = transform;
}
}
#endregion

[MenuItem("MYTOOLS/OpenCurrentDirectory")]
static void CurrentDirectory()
{
Process.Start(Environment.CurrentDirectory);
}

[MenuItem("MYTOOLS/GoToGoogleWebsite")]
static void GoToGoogleWebsite()
{
ProcessStartInfo startInfo = new ProcessStartInfo("IExplore.exe");
startInfo.WindowStyle = ProcessWindowStyle.Hidden;

startInfo.Arguments = "www.google.com";

Process.Start(startInfo);
}

[MenuItem("MYTOOLS/StartUpGameServer")]
static void StartUpGameServer()
{
string serverPath = "E:\\Server\\Debug";
string serverApplicationName = "server.exe";

ProcessStartInfo startInfo = new ProcessStartInfo(Path.Combine(serverPath, serverApplicationName));
startInfo.WindowStyle = ProcessWindowStyle.Maximized;

//端口号
startInfo.Arguments = "9918";

Process.Start(startInfo);
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: