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

Unity 3D 第一更

2015-09-08 14:02 363 查看

Unity 3D 第一更

这几年手机随着手机方面硬件的不断提升,手机上面的内存,Cpu,都不断的更新,以前的手机游戏已经不能满足手机发烧友的需求,希望在手机上面也能玩到像PC端的3D游戏,于是Unity 3D引擎就这样诞生了,Unity 3D不仅可以开发出手机方面的游戏,还可以对多个平台进行游戏开发,手机端 PC端 XBOX PSP PS4 andorid Iphone 等系统进行开发,所以今天我们就来说一说,Unity 3D 的游戏开发。
首先说下Unity 3D 基础操作。
Layout 布局 相对按钮


void OnGUI()
{
//GUILayout.Width         布局宽度
//GUILayout.Height        布局高度
//GUILayout.MinHeight     最小布局高度
//GUILayout.MinWidth      最小布局宽度
//GUILayout.MaxHeight     最大布局高度
//GUILayout.MaxWidth      最大布局宽度
//GUILayout.ExpandHeight  设置布局整体高度
//GUILayout.ExpandWidth   设置布局整体宽度
// GUILayout.BeginArea(new Rect(100,100,Screen.width,Screen.height));
GUILayout.Button("设置布局按钮宽度为300,高度为30",GUILayout.Height(30),GUILayout.Width(300));

GUILayout.Button("设置最小布局按钮宽度为100,最小高度为20", GUILayout.MinWidth(100), GUILayout.MinHeight(20));
GUILayout.Button("设置最大布局按钮宽度为400,最大高度为40", GUILayout.MinWidth(100),GUILayout.MaxWidth(400), GUILayout.MaxHeight(40));
GUILayout.Button("设置宽度不等于最宽按钮", GUILayout.ExpandWidth(false));
GUILayout.Button("设置宽度为最宽按钮", GUILayout.ExpandWidth(true));
//GUILayout.EndArea();
}


Unity 对数字的随机

void Update () {
print (Random.Range (0,1));
print (Random.Range (0.0f,1.0f));
}


Unity 实现图片帧动画的脚本

int noFrame = 0;
int countFrame = 0;
float time = 0;
public string path;
public int fps = 0;
object [] all;

// Use this for initialization
void Start () {

all=Resources.LoadAll(path);
countFrame = all.Length;

}

// Update is called once per frame
void Update () {
if (all != null)
{
transform.GetComponent<Renderer>().material.mainTexture = (Texture)all[noFrame];
time += Time.deltaTime;
if (time >= 1.0 / fps)
{
noFrame++;
time = 0;
}
if (noFrame >= countFrame)
{
noFrame = 0;
}

}
}
这里要注意的是在工程里面文件夹起名字的注意事项,文件夹的名称必须是Resources


Unity 中实现Windows窗口

void OnGUI()
{
//if(Input.GetMouseButton())
GUI.Window(0,new Rect(0,0,100,100),mywindow,"是否接收任务");
}

void mywindow(int winid)
{
GUI.Label(new Rect(13,30,100,100),"撒大大");

}
// Update is called once per frame
void Update () {
print("12312313");
}


Unity 通过按钮读取图片

// Use this for initialization
void Start () {

}
Texture simple;
Object [] All;
void OnGUI()
{
if(GUILayout.Button("读取一张图片"))
{
simple = (Texture)Resources.Load("back");
}
if (GUILayout.Button("读取一张图片"))
{
All = Resources.LoadAll("windmill");
}
if(simple!=null)
{
GUI.DrawTexture(new Rect(0,0,Screen.width,Screen.height),simple, ScaleMode.StretchToFill,false,0);
}
if (All!=null)
{
for (int i =0;i<All.Length ;i++ )
{
GUI.DrawTexture(new Rect(i*64, 0, 64,64), (Texture)All[i], ScaleMode.StretchToFill, true, 0);
}
}
}

// Update is called once per frame
void Update () {

}


Unity 插值角度和固定角度

void OnGUI()
{
if(GUILayout.Button ("旋转固定角度"))
{
gameObject.transform.rotation = Quaternion.Euler (0,50,0);

}

if(GUILayout.Button ("旋转插值角度"))
{
rotate=true;
}

}
bool rotate=false;
// Update is called once per frame
void Update () {
if(rotate)
{
gameObject.transform.rotation = Quaternion.Slerp (gameObject.transform.rotation,Quaternion.Euler (0,50,0),Time.fixedDeltaTime);

}
}


Unity 窗口添加文字

int textureWidth;
int textureHeight;
int ScreenWidth;
int ScreenHeight;
public Texture texture;
string str;
// Use this for initialization
void Start () {
textureWidth=texture.width;
textureHeight = texture.height;
ScreenWidth=Screen.width;

ScreenHeight=Screen.height;
str = "第一个Untiy项目";
}

void OnGUI()
{
GUI.Label(new Rect(10,10,330,20), str);
GUI.Label(new Rect(10, 30, 330, 120), "当前屏幕宽"+ScreenWidth);
GUI.Label(new Rect(10, 50, 330, 20), "当前屏幕高" + ScreenHeight);
GUI.Label(new Rect(10, 70, textureWidth, textureHeight), texture);
}

// Update is called once per frame
void Update () {

}


在窗口中添加各种按钮

public Texture2D buttonTexture;
string strMes;
int frameCount;
// Use this for initialization
void Start () {
strMes = "请您点击按钮";
}
// Update is called once per frame
void OnGUI()
{

if(GUI.Button(new Rect(10,50,buttonTexture.width,buttonTexture.height),buttonTexture))
{
strMes = "您点击了图片按钮";
}
GUI.color = Color.green;
GUI.backgroundColor = Color.red;
if (GUI.Button(new Rect(10, 200, 100,50), "文字按钮"))
{
strMes = "您点击了文字按钮";
}
if(GUI.RepeatButton(new Rect(40,10,120,30),"按钮按下中"))
{
strMes = "您按下该按钮已经按下的时间为:"+frameCount+"";
frameCount++;
}
GUI.Label(new Rect(10, 10, Screen.width, 30), strMes);
}

// Update is called once per frame
void Update () {

}


Unity 窗口分割区域

public Texture t1;
public Texture t2;
// Use this for initialization
void Start()
{

}
void OnGUI()
{
GUI.BeginGroup(new Rect(0, 0, 600, 600));
GUI.Label(new Rect(300, 390, 100, 100), "啦啦啦啦");
GUI.Label(new Rect(0,0,50,20),"1231asdasdas");
GUI.DrawTexture(new Rect(100,100,150,150),t1);
GUI.EndGroup();

GUI.BeginGroup(new Rect(30,30, 600, 600));
GUI.Label(new Rect(300, 390, 100, 100), "啦啦啦啦");
GUI.Label(new Rect(0, 0, 50, 20), "1231asdasdas");
GUI.DrawTexture(new Rect(100, 100, 150, 150), t1);
GUI.EndGroup();
}
// Update is called once per frame
void Update()
{
//gameObject.GetComponent<Light>().enabled=;

//GameObject.fin
//提示:射线
//将森林里所有的火把的光默认关掉,
//先播放背景音乐(恐怖点的),点击NPC以后,,NPC说话,出现接收任务框,接收任务了以后所有火把点亮
//任务的内容是 拾取10个上古神物,神物的旁边都会有魔法照射  ,有火把的地方就有神物的可能性

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