- 浏览: 257238 次
- 性别:
- 来自: 成都
文章分类
最新评论
-
zoukaiwolai:
...
Java 16进制字符串与2进制字符串相互转换 -
sooxin:
j2ee的事务对连接有自己的管理机制,包括建立和关闭。没进j2 ...
c3p0 spring 包没进事务管理,连接池就不能释放 -
sooxin:
mina 采用一种NIO通信,底层的连接机制没有具体研究过,但 ...
转 Mina框架在项目中的使用 -
tywo45:
写得很好,希望博主把格式调一下!
Tomcat性能参数设置介绍 -
freecode:
采用了cp30,项目中出现很多未关闭的连接,一直在找原因.
c3p0 spring 包没进事务管理,连接池就不能释放
1 GUI汇总
function OnGUI() {
GUI.Label(Rect(1,1,100,20),"I'm a Label"); //1
GUI.Box(Rect(1,21,100,20),"I'm a Box"); //2
GUI.Button(Rect(1,41,100,20),"I'm a Button"); //3
GUI.RepeatButton(Rect(1,61,120,20),"I'm a RepeatButton"); //4
GUI.TextField(Rect(1,81,100,20),"I'm a TextFielld"); //5
GUI.TextArea(Rect(1,101,100,40),"I'm a TextArea,\nMultiline"); //6
GUI.Toggle(Rect(1,141,120,20),true,"I'm a Toggle true"); //7
GUI.Toggle(Rect(1,161,120,20),false,"I'm a Toggle false"); //8
GUI.Toolbar(Rect(1,181,160,20),-1,["Toolbar","Tool2","Tool3"); //9
GUI.SelectionGrid(Rect(1,201,190,20),2,["Selection","Grid","select3"],3); //10
GUI.HorizontalSlider(Rect(1,221,180,20),3.0,0,10.0); //11
GUI.VerticalScrollbar(Rect(1,241,20,100),3.0,1,0.0,10.0); //12
//13
GUI.BeginScrollView (Rect (200,10,100,100),Vector2.zero, Rect (0, 0, 220, 200));
GUI.Label(Rect(0,0,100,20),"I'm a Label");
GUI.EndScrollView();
//14
GUI.Window(0,Rect(200,129,100,100),funcwin,"window");
}
function funcwin(windowID:int)
{
GUI.DragWindow(Rect(0,0,10000,2000));
}
2 JS调用DLL
import System;
import System.Runtime.InteropServices;
@DllImport("user32.dll")
public static function MessageBox(Hwnd : int,text : String,Caption : String,iType : int) : int {};
function Start()
{
MessageBox(0, "API Message Box", "Win32 API", 64) ;
}
function Update () {
}
//Declare our list of stuff
public List<GuiListItem> MyListOfStuff;
// Initialization
void Start()
{
guiWidth = 400;
guiHight = 28;
// Manually position our list, because the dropdown will appear over other controls
DropDownRect = new Rect(10, 10, guiWidth, guiHight);
DropdownVisible = false;
itemtSelected = -1;
targetChange = false;
lastCaption = selectedItemCaption = "Select a Part...";
if (!root)
root = gameObject.transform;
MyListOfStuff = new List<GuiListItem>(); //Initialize our list of stuff
// fill the list
BuildList(root);
// set GUI for each item in list
SetupGUISetting();
// fill the list
FillList(root);
}
void OnGUI()
{
//Show the dropdown list if required (make sure any controls that should appear behind the list are before this block)
if (DropdownVisible)
{
GUI.SetNextControlName("ScrollView");
GUILayout.BeginArea(new Rect(DropDownRect.xMin, DropDownRect.yMin + DropDownRect.height, guiWidth, Screen.height * .25f), "", "box");
ListScrollPos = GUILayout.BeginScrollView(ListScrollPos, dropSkin.scrollView);
GUILayout.BeginVertical(GUILayout.Width(120));
for (int i = 0; i < MyListOfStuff.Count; i++)
{
if (MyListOfStuff[i].Selected && GUILayout.Button(MyListOfStuff[i].Name, dropSkin.customStyles[MyListOfStuff[i].GuiStyle]))
{
HandleSelectedButton(i);
}
}
GUILayout.EndVertical();
GUILayout.EndScrollView();
GUILayout.EndArea();
}
//Draw the dropdown control
GUILayout.BeginArea(DropDownRect, "", "box");
GUILayout.BeginHorizontal();
string ButtonText = (DropdownVisible) ? "<<" : ">>";
DropdownVisible = GUILayout.Toggle(DropdownVisible, ButtonText, "button", GUILayout.Width(32), GUILayout.Height(20));
GUI.SetNextControlName("PartSelect");
selectedItemCaption = GUILayout.TextField(selectedItemCaption);
clearDropList = GUILayout.Toggle(clearDropList, "Clear", "button", GUILayout.Width(40), GUILayout.Height(20));
GUILayout.EndHorizontal();
GUILayout.EndArea();
}
void Update()
{
//check if text box info changed
if (selectedItemCaption != lastCaption)
{
textChanged = true;
}
// if text box info changed look for part matching text
if (textChanged)
{
lastCaption = selectedItemCaption;
textChanged = false;
// go though list to find item
for (int i = 0; i < MyListOfStuff.Count; ++i)
{
if (MyListOfStuff[i].Name.StartsWith(selectedItemCaption, System.StringComparison.CurrentCultureIgnoreCase))
{
MyListOfStuff[i].enable();
MyListOfStuff[i].ToggleChildren = false;
MyListOfStuff[i].GuiStyle = MyListOfStuff[i].UnSelectedStyle;
}
else
{
MyListOfStuff[i].disable();
MyListOfStuff[i].ToggleChildren = false;
MyListOfStuff[i].GuiStyle = MyListOfStuff[i].UnSelectedStyle;
}
}
for (int i = 0; i < MyListOfStuff.Count; ++i)
{
// check list for item
int test = string.Compare(selectedItemCaption, MyListOfStuff[i].Name, true);
if (test == 0)
{
itemtSelected = i;
targetChange = true;
break; // stop looking when found
}
}
}
// reset message if list closed and text box is empty
if (selectedItemCaption == "" && !DropdownVisible)
{
lastCaption = selectedItemCaption = "Select a Part...";
ClearList(root);
FillList(root);
}
// if Clear button pushed
if (clearDropList)
{
clearDropList = false;
selectedItemCaption = "";
}
}
public void HandleSelectedButton(int selection)
{
// do the stuff, camera etc
itemtSelected = selection;//Set the index for our currently selected item
updateInfo = true;
selectedItemCaption = MyListOfStuff[selection].Name;
currentRoot = GameObject.Find(MyListOfStuff[itemtSelected].Name).transform;
// toggle item show child
MyListOfStuff[selection].ToggleChildren = !MyListOfStuff[selection].ToggleChildren;
lastCaption = selectedItemCaption;
// fill my drop down list with the children of the current selected object
if (!MyListOfStuff[selection].ToggleChildren)
{
if (currentRoot.childCount > 0)
{
MyListOfStuff[selection].GuiStyle = MyListOfStuff[selection].SelectedStyle;
}
FillList(currentRoot);
}
else
{
if (currentRoot.childCount > 0)
{
MyListOfStuff[selection].GuiStyle = MyListOfStuff[selection].UnSelectedStyle;
}
ClearList(currentRoot);
}
targetChange = true;
}
// show only items that are the root and its children
public void FillList(Transform root)
{
foreach (Transform child in root)
{
for (int i = 0; i < MyListOfStuff.Count; ++i)
{
if (MyListOfStuff[i].Name == child.name)
{
MyListOfStuff[i].enable();
MyListOfStuff[i].ToggleChildren = false;
MyListOfStuff[i].GuiStyle = MyListOfStuff[i].UnSelectedStyle;
}
}
}
}
// turn off children objects
public void ClearList(Transform root)
{
//Debug.Log(root.name);
Transform[] childs = root.GetComponentsInChildren<Transform>();
foreach (Transform child in childs)
{
for (int i = 0; i < MyListOfStuff.Count; ++i)
{
if (MyListOfStuff[i].Name == child.name && MyListOfStuff[i].Name != root.name)
{
MyListOfStuff[i].disable();
MyListOfStuff[i].ToggleChildren = false;
MyListOfStuff[i].GuiStyle = MyListOfStuff[i].UnSelectedStyle;
}
}
}
}
// recursively build the list so the hierarchy is in tact
void BuildList(Transform root)
{
// for every object in the thing we are viewing
foreach (Transform child in root)
{
// add the item
MyListOfStuff.Add(new GuiListItem(false, child.name));
// if it has children add the children
if (child.childCount > 0)
{
BuildList(child);
}
}
}
public void ResetDropDownList()
{
selectedItemCaption = "";
ClearList(root);
FillList(root);
}
public string RemoveNumbers(string key)
{
return Regex.Replace(key, @"\d", "");
}
// sets the drop list elements to use the correct GUI skin custom style
private void SetupGUISetting()
{
// set drop down list gui
int depth = 0;
// check all the parts for hierarchy depth
for (int i = 0; i < MyListOfStuff.Count; ++i)
{
GameObject currentObject = GameObject.Find(MyListOfStuff[i].Name);
Transform currentTransform = currentObject.transform;
depth = 0;
if (currentObject.transform.parent == root) // if under root
{
if (currentObject.transform.childCount > 0)
{
MyListOfStuff[i].GuiStyle = depth;
MyListOfStuff[i].UnSelectedStyle = depth;
MyListOfStuff[i].SelectedStyle = depth + 2;
}
else
{
MyListOfStuff[i].GuiStyle = depth + 1;
MyListOfStuff[i].UnSelectedStyle = depth + 1;
MyListOfStuff[i].SelectedStyle = depth + 1;
}
MyListOfStuff[i].Depth = depth;
}
else // if not under root find depth
{
while (currentTransform.parent != root)
{
++depth;
currentTransform = currentTransform.parent;
}
MyListOfStuff[i].Depth = depth;
// set gui basied on depth
if (currentObject.transform.childCount > 0)
{
MyListOfStuff[i].GuiStyle = depth * 3;
MyListOfStuff[i].UnSelectedStyle = depth * 3;
MyListOfStuff[i].SelectedStyle = (depth * 3) + 2;
}
else
{
MyListOfStuff[i].GuiStyle = depth * 3 + 1;
MyListOfStuff[i].UnSelectedStyle = depth * 3 + 1;
MyListOfStuff[i].SelectedStyle = depth * 3 + 1;
}
}
}
}
}
相关推荐
本文将对 Unity3D 中的一些常用代码进行总结和解释,帮助开发者更好地理解和应用这些代码。 1. 基本碰撞检测代码 碰撞检测是 Unity3D 中的一个基本概念,在游戏开发中经常需要检测物体之间的碰撞。在这个代码中,...
总结大部分unity3d的脚本常用代码,方便理解大部分脚本用法。
标题《UNITY3D常用代码》总结了多个在Unity3D游戏开发中常用的基础功能代码示例。以下详细说明了各个代码的功能和使用场景: 1、基本碰撞检测代码 在Unity3D中,碰撞检测是游戏逻辑编程中不可或缺的部分。基本碰撞...
贝塞尔曲线是计算机图形学中常用的一种平滑曲线表示法,尤其在Unity3D这样的游戏引擎中,它常被用来创建动画路径、游戏物体的运动轨迹等。本教程将深入探讨贝塞尔曲线的原理,以及如何在Unity3D中实现这一功能。 ...
总结来说,这个"unity3d 使用SQLite数据库源代码"压缩包提供了Unity3D中使用SQLite数据库的完整解决方案,包括源代码、测试脚本和详细注释,可以帮助开发者快速理解和实现游戏数据的存储和管理。对于希望在Unity项目...
### Unity3d面试题总结及解析 #### 一、渲染管道 **定义**: 渲染管道(Rendering Pipeline)指的是在计算机图形学中,从原始3D模型数据转换为最终显示在屏幕上的2D图像的过程。这个过程涉及多个步骤,每个步骤负责...
教程中提到了如何在脚本初始化阶段(`Start()`方法中)通过`FindWithTag`函数获取带有特定标签(tag)的对象,这是Unity3D中一种常用的物体检索方式,它允许开发者根据预定义的标签来查找和引用游戏物体。...
Unity 3D是一种跨平台的游戏开发工具,支持多种编程语言,包括C#、JavaScript和Boo等,其中C#是最常用的编程语言之一。Unity 3D引擎的强大之处在于其对各种平台的支持,包括iOS、Android、Windows Phone等移动设备...
- Unity3D使用Mono作为其内部的虚拟机来运行.NET代码,这意味着开发者可以在任何支持.NET的环境中编写代码,并在Unity中运行。 #### 五、Unity3D提供的光源类型 Unity提供了多种光源类型供开发者选择: 1. **方向光...
### Unity3D脚本知识点详解 #### 一、脚本概览 Unity3D脚本是一种用于游戏开发的重要工具,其主要功能在于控制游戏中的逻辑和行为。在Unity3D中,脚本通常是通过附加自定义脚本对象到游戏物体上来实现的。脚本对象...
Unity3D是一个功能强大的跨平台游戏引擎,它支持多种编程语言,其中C#是最常用的一种。当开发者需要在游戏中集成用户数据管理、高分榜、在线排行榜等功能时,连接并操作数据库就变得至关重要。在Unity中,可以通过...
Unity3D提供了多种方式来旋转物体,其中`GameObject.transform.Rotate()`是最常用的方法之一,它允许开发者以不同的空间基准来旋转物体。 - **知识点详解**: - `transform.Rotate(Vector3 axis, float angle, ...
### Unity3D认证级游戏开发核心训练视频教程知识点解析 #### 一、Unity3D概述与环境搭建 **1.1 Unity3D简介** Unity3D是一款由Unity ...希望本篇总结能够帮助您快速入门并掌握Unity3D游戏开发的基本技能。
总结,海海的Unity3D资源包教程旨在帮助开发者掌握有效的资源管理技巧,提高项目的开发效率和性能表现。通过对Assets文件夹的合理组织、Library的正确理解和Asset Bundle的灵活运用,可以打造更高效、更流畅的游戏...
在Unity中,脚本是实现交互性和逻辑控制的核心部分,而JavaScript是Unity3D早期常用的脚本语言之一。本教程将针对Unity3D中的JavaScript语法基础进行详细讲解,适合初学者入门学习。 一、变量与数据类型 在...
Unity3D 脚本编程入门 本文档将指导您入门 Unity3D 脚本编程,了解 Unity3D 脚本的基本概念和使用方法。 脚本对象 在 Unity3D 中,脚本对象是游戏物体的组成部分,可以附加到游戏物体上。脚本对象内部有不同的...
Unity3D iTween插件是Unity3D游戏开发中常用的一个动画库,它极大地简化了在游戏场景中创建平滑过渡和复杂动画的过程。通过使用iTween,开发者无需编写复杂的Lerp(线性插值)代码,即可实现物体的位置、旋转、缩放...
### Unity3D中的GUI开发详解 #### 一、引言 在Unity3D游戏中,图形用户界面(Graphical User Interface, GUI)是与玩家互动的重要环节之一。良好的GUI设计不仅可以提升用户体验,还能帮助开发者更高效地管理和调整...
### Unity3D中文脚本使用手册知识点解析 #### 一、脚本概览 Unity3D中的脚本机制是其核心功能之一,主要用于控制游戏逻辑和实现交互效果。脚本可以通过附加到游戏对象上来实现对游戏对象的行为控制。在Unity3D中,...