using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
using System;
[CustomEditor(typeof(ArtAnnotate))]
public class ArtAnnotateEditor : Editor {
public const int MOUSE_BUTTON_LEFT = 0;
public const int MOUSE_BUTTON_RIGHT = 1;
void OnSceneGUI()
{
if (Event.current.type == EventType.MouseDrag) {
}
if (Event.current.type == EventType.MouseDown) {
if (Event.current.button == MOUSE_BUTTON_LEFT) {
//用發(fā)射射線來確定點(diǎn)擊目標(biāo)
// Event.current.mousePosition屏幕坐標(biāo)创南,左上角是(0,0)右下角(camera.pixelWidth省核,camera.pixelHeight)
// 需要轉(zhuǎn)換成攝像機(jī)可接受的屏幕坐標(biāo)稿辙,左下角是(0,0气忠,0)右上角是(camera.pixelWidth邻储,camera.pixelHeight,0)
// 當(dāng)前屏幕坐標(biāo)旧噪,左上角是(0吨娜,0)右下角(camera.pixelWidth,camera.pixelHeight)
Vector2 mousePosition = Event.current.mousePosition;
// Retina 屏幕需要拉伸值
float mult = 1;
#if UNITY_5_4_OR_NEWER
mult = EditorGUIUtility.pixelsPerPoint;
#endif
// 轉(zhuǎn)換成攝像機(jī)可接受的屏幕坐標(biāo)淘钟,左下角是(0宦赠,0,0)右上角是(camera.pixelWidth米母,camera.pixelHeight勾扭,0)
mousePosition.y = SceneView.currentDrawingSceneView.camera.pixelHeight - mousePosition.y * mult;
mousePosition.x *= mult;
//獲取世界坐標(biāo)
SceneView.currentDrawingSceneView.camera.ScreenToWorldPoint(mousePosition);
}
}
if (Event.current.type == EventType.MouseUp ){
if (Event.current.button == MOUSE_BUTTON_LEFT) {
//用發(fā)射射線來確定點(diǎn)擊目標(biāo)
} else if (Event.current.button == MOUSE_BUTTON_RIGHT) {
if ((Event.current.modifiers & EventModifiers.Control) != 0) {
//按下Ctrl鍵盤
} else {
GenericMenu menu = new GenericMenu ();
menu.AddDisabledItem (new GUIContent ("Not Recommend"));
menu.AddItem (new GUIContent ("UnSelect"), aTarget.brushType == BrushType.UnSelect, callMethodUnSelect, null);
menu.AddSeparator ("");
menu.AddItem (new GUIContent ("Cancel"), aTarget.brushType == BrushType.None, callmethodCancel, null);
menu.ShowAsContext ();
}
//設(shè)置該事件被使用
Event.current.Use ();
} else {
//Debug.Log ("Event.current.button");
}
}
}
}
//UnSelect
void callMethodUnSelect(object obj){
}
//取消
void callmethodCancel(object obj){
}
Unity Scene窗口編輯工具常用鼠標(biāo)勺择、鍵盤例子
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
- 文/潘曉璐 我一進(jìn)店門笋鄙,熙熙樓的掌柜王于貴愁眉苦臉地迎上來师枣,“玉大人,你說我怎么就攤上這事萧落〖溃” “怎么了?”我有些...
- 文/不壞的土叔 我叫張陵找岖,是天一觀的道長陨倡。 經(jīng)常有香客問我,道長许布,這世上最難降的妖魔是什么兴革? 我笑而不...
- 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上杂曲,老公的妹妹穿的比我還像新娘庶艾。我一直安慰自己,他們只是感情好擎勘,可當(dāng)我...
- 文/花漫 我一把揭開白布咱揍。 她就那樣靜靜地躺著,像睡著了一般棚饵。 火紅的嫁衣襯著肌膚如雪述召。 梳的紋絲不亂的頭發(fā)上,一...
- 文/蒼蘭香墨 我猛地睜開眼遍愿,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了耘斩?” 一聲冷哼從身側(cè)響起沼填,我...
- 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎括授,沒想到半個(gè)月后坞笙,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
- 正文 獨(dú)居荒郊野嶺守林人離奇死亡荚虚,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
- 正文 我和宋清朗相戀三年薛夜,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片版述。...
- 正文 年R本政府宣布俭茧,位于F島的核電站咆疗,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏恢恼。R本人自食惡果不足惜民傻,卻給世界環(huán)境...
- 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧漓踢,春花似錦牵署、人聲如沸。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至挺据,卻和暖如春取具,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背扁耐。 一陣腳步聲響...
- 正文 我出身青樓块仆,卻偏偏與公主長得像,于是被迫代替她去往敵國和親王暗。 傳聞我的和親對(duì)象是個(gè)殘疾皇子悔据,可洞房花燭夜當(dāng)晚...
推薦閱讀更多精彩內(nèi)容
- Unity 此前就表示,今年他們將聯(lián)合歐洲其他開發(fā)商致力于最新虛擬現(xiàn)實(shí)游戲引擎平臺(tái)的開發(fā)工作俗壹。在今天的主題演講中科汗,...
- 在專業(yè)視頻制作軟件-Vegas時(shí)間線窗口中,有一個(gè)標(biāo)準(zhǔn)編輯工具組绷雏,其中包括拖拽工具头滔,滑動(dòng)工具,幻燈片工具之众,時(shí)間拉伸...
- 1.1. 常用鼠標(biāo)事件 1.1.1 案例:禁止選中文字和禁止右鍵菜單 1.1.2 鼠標(biāo)事件對(duì)象 1.1.3 獲取鼠...
- 新項(xiàng)目是關(guān)卡制的一個(gè)小游戲,需要策劃去手動(dòng)拼接關(guān)卡蛀醉,又是采取了3D場(chǎng)景下2D人物的展現(xiàn)形式悬襟,所以對(duì)于場(chǎng)景中的道具擺...
- Unity 已經(jīng)表明在今年將會(huì)聯(lián)合歐洲其他開發(fā)商致力于它的最新游戲引擎平臺(tái)的虛擬開發(fā)工作,并且在今天的主題演講中拯刁,...