2016-01-11 22:51:00 zengbinsi 阅读数 2635
  • Unity3D入门到精通-(3)Unity资源管理精讲

    本次系列课程的目标是让Unity3D初学者掌握Unity3d的资源管理技术进行了全面介绍,特别对AssetBundle资源如何进行更新,以及加载(依赖资源加载)进行了系统的介绍。 适合对象:Unity初学开发者,Unity中级开发者,网络程序开发者,所有对游戏开发有兴趣的人员。 学习条件:有一定的Unity3D基础,了解C#的基本开发知识。

    4631 人正在学习 去看看 张刚

创建游戏对象

打开Unity主窗口,选择顶部菜单栏的“GameObject”->“3D Object”->“Plane”在游戏场景里面添加一个面板对象。然后再创建一个“Cube”(立方体)对象。这样场景就会如下图所示:
工具栏

会发现面板和立方体卡在了同一个位置上面,我们想要将立方体置于面板的上面,这时候就需要对场景内的游戏对象进行编辑。
在Unity主窗口的左上角有一组专门用于编辑游戏对象的工具栏(被红色方框圈住地方)。其从左往右依次是:手型工具、平移工具、旋转工具、缩放工具和精灵工具。
手型工具处于选中状态时,我们可以通过按住鼠标左键并移动鼠标来拖拽整个游戏场景,然后Scene视图显示场景的不同位置,这样我们可以对游戏场景的不同位置进行编辑。
移动游戏对象

平移工具处于选中状态时,我们用鼠标单击场景内的某个游戏对象,该对象上会出现三个不同颜色的剪头,分别指向x、y和z三个轴的正方向。这时候使用鼠标任意拖动某个箭头便可以移动游戏对象。
旋转游戏对象

旋转工具处于选中状态时,我们用鼠标单击场景内的某个游戏对象,该对象周围会出现三个带颜色的圈,从不同的角度圈住游戏对象。这时候如果我们随意拖动一个圈,游戏对象便会绕对应的某个轴进行旋转。
缩放游戏对象

缩放工具处于选中状态时,我们用鼠标单击场景内的有个游戏对象,改对象上会出现三个类似平移标识的箭头。只是这个箭头的顶端不是尖锐的,而是一个立方体。我们用鼠标拖拽任意的箭头便可以对游戏对象进行缩放操作。
在缩放工具的右边,紧挨的是精灵工具。它主要是针对Unity 2D游戏对象进行编辑的工具,这里暂且不谈。
手型工具、平移工具、旋转工具、缩放工具和精灵工具,除了使用鼠标点击的方式选中外,它们各自还绑定了一个快捷键。其从左往右对应的快捷按键分别是:Q、W、E、R和T。当我们按下这五个按键中的某一个时,对应的工具栏按钮便会处于选中状态,这样我们可以更加快速的编辑游戏场景。
为了方便配合上面的五个工具栏操作,我们还可以在Hierarchy面板上面用鼠标双击某个游戏对象,这时候Scene视图会快速聚焦到被选中的那个游戏对象上。
平移工具、旋转工具或者缩放工具被选中时,我们再选中某个游戏对象,然后按下键盘的F键,Scene视图会迅速将画面移动到对应的游戏对象上方便对其进行编辑。
当某个物体被选中后,我们可以通过按住alt键(mac为option键),并按住鼠标左键移动鼠标来对该游戏物体进行全方位的观察。如果将左键换成了鼠标右键,则会以该游戏对象为锚点,进行场景的拉近拉远观看。
鼠标位于Scene视图中时,滚动鼠标滚轮(鼠标中键)也可以对Scene视图进行拉近拉远观看。
另外,除了手型工具可以平移场景外,我们还可以简单的按住鼠标右键,然后移动鼠标来旋转Scene视图的观看角度。
使用以上这些操作,我们可以很方便的对游戏场景进行可视化的编辑。
微调参数

当然,除了在Scene视图中编辑场景外。我们还可以在游戏对象的Inspector面板上找到对应的Transform组件,然后修改其属性值来编辑游戏对象。一般,微调某个游戏对象的时候,通常都会在Transform组件上进行修改。
场景漫游

场景编辑好之后,我们可以按住鼠标右键,然后使用场景漫游快捷键来漫游整个游戏场景。按住W键,Scene视图的视窗将会以当前视角向前推进;按住S键,Scene视图的视窗将会以当前视角向后推进;按住A键,Scene视图的视窗将会以当前视角向左推进;按住D键,Scene视图的视窗将会以当前视角向右推进;按住Q键,Scene视图的视窗将会以当前视角向下推进;按住E键,Scene视图的视窗将会以当前视角向上推进。也可以一边按住漫游快捷键,一边移动鼠标,这样我们便可以很方便的在Scene视图中漫游整个游戏场景。

2018-01-11 14:29:37 liyangufo 阅读数 316
  • Unity3D入门到精通-(3)Unity资源管理精讲

    本次系列课程的目标是让Unity3D初学者掌握Unity3d的资源管理技术进行了全面介绍,特别对AssetBundle资源如何进行更新,以及加载(依赖资源加载)进行了系统的介绍。 适合对象:Unity初学开发者,Unity中级开发者,网络程序开发者,所有对游戏开发有兴趣的人员。 学习条件:有一定的Unity3D基础,了解C#的基本开发知识。

    4631 人正在学习 去看看 张刚
	public float f_speed = 10f;  
	public float h_speed = 1f;  
	public float groundDis = 0.1f;  
	public float skyDis = 50f;  
	public Camera camera;  
	// Use this for initialization  
	void Start () {  
		camera = Camera.main;  
		rota = camera.transform.eulerAngles;  
	}  

	// Update is called once per frame  
	void Update () {  
		//鼠标右键  
		if(Input.GetMouseButton(1)){  
			rota.y += Input.GetAxis ("Mouse X") * x_speed;  
			rota.x -= Input.GetAxis ("Mouse Y") * y_speed;  
			Quaternion q = Quaternion.Euler (rota);  
			camera.transform.rotation = q;  
		}  
		//滚轮滑动  
		float middle = Input.GetAxis ("Mouse ScrollWheel");  

		camera.transform.position += -Vector3.up * middle * m_speed + (Vector3.forward * middle * f_speed);  

		//空格键上升  
		if(Input.GetKey(KeyCode.Space)){  
			middle = -0.1f;  
			camera.transform.position += -Vector3.up * middle * m_speed ;// (Vector3.forward * middle * f_speed);  
		}  
		//Ctrl键位下降
		if(Input.GetKey(KeyCode.LeftControl)){  
			middle = 0.1f;  
			camera.transform.position += Vector3.down * middle * m_speed ;//+ (Vector3.forward * middle * f_speed);  
		}  
		//WASD  
		float h = Input.GetAxis ("Horizontal");  
		float v = Input.GetAxis ("Vertical");  
		camera.transform.position += camera.transform.right * h * h_speed;  
		camera.transform.position += camera.transform.forward * v;  
		clamp ();  

	}  
	//限制上升下降的的高度和底端
	private void clamp(){  
		Vector3 upUp;  
		upUp = camera.transform.position;  
		upUp.y = Mathf.Clamp (upUp.y,groundDis,skyDis);  
		camera.transform.position = upUp;  
	}  
}  

2014-09-09 09:50:32 book_longssl 阅读数 5356
  • Unity3D入门到精通-(3)Unity资源管理精讲

    本次系列课程的目标是让Unity3D初学者掌握Unity3d的资源管理技术进行了全面介绍,特别对AssetBundle资源如何进行更新,以及加载(依赖资源加载)进行了系统的介绍。 适合对象:Unity初学开发者,Unity中级开发者,网络程序开发者,所有对游戏开发有兴趣的人员。 学习条件:有一定的Unity3D基础,了解C#的基本开发知识。

    4631 人正在学习 去看看 张刚

场景漫游的制作。

1.       首先在3d软件中准备好模型,我找了个maya制作的房子。
注意:我这里用的是真实世界的比例,旁边测量工具测量的是1000cm,10米高.



2.  导出fbx格式文件。
    注意 勾选光滑组输出,设置单位为厘米,Y轴朝上。

3.       新建一个unity项目:
勾选你将来要用到的引擎自带的几个资源包例如:
Character Controller.unityPackage
这个里面有一个第一人称控制,一个第三人称控制。)
Particles.unityPackage
Skyboxes.unityPackage
天空盒
Terrain Assets.unityPackage
地形素材包
或者先新建一个空的项目,再open打开Program FilesUnityEditorStandard Packages目录下的这些. unityPackage文件,效果是一样的。


4.   把fbx文件和贴图用鼠标拖进这里,表给我说你连用鼠标拖拽都不会。
     我的fbx文件名是Building01,贴图放textures目录里了。这直接把texutres目录拖进来。


5.  把Building01拖进Hierarchy栏或者直接拖进编辑窗口,区别是一个自动放在0点位置,一个在你松鼠标    的位置。


6.  创建一个地形:
Terrain->Create Terrain
创建,Terrain->Set Resolution设置地形参数,宽高长红线画的。


7.  点选地形,选择绘制地形贴图笔刷,点击Edit Textures,从项目栏选张贴图拖到4的位置,然后点Add.然后刷吧!!!树和草也是用相同的流程建立的,草也是拖张贴图上去,


树则是拖一个实现做好的prefab,你可以从Unity官网上下一个地形资源包里面有树,草,石头,地形贴图免费的!!!Unity还有个类似Speedtree的内置工具,你可以用它做自己需要的树并方便的调整造型什么的,有兴趣可以自己研究下。



8.  点击GameObject->Create Other->Directional Light建立方向光,勾选Shadow Type中的软阴影,哈!!可以

    看见影子了,其他的颜色啊强度参数自己试试调整吧。
注意:只有Pro版才能打开光影效果,免费版试用版是没这个功能的。也不能生成可运行文件。



9.  现在放个人进去跑跑。
第一人称或者第三人称随你选。这个是Character Controller.unityPackage资源包里面的,在创建项目的

    时候可别忘记勾选这个资源包哦!!



       

创建基本地形(创建山、河流、山地文理、树、草);设置地形(设置树、草、风,添加水);为地形添加效果(添加雾、天空盒、阴影、小地图)
2016-06-17 13:29:26 U_laoba 阅读数 3183
  • Unity3D入门到精通-(3)Unity资源管理精讲

    本次系列课程的目标是让Unity3D初学者掌握Unity3d的资源管理技术进行了全面介绍,特别对AssetBundle资源如何进行更新,以及加载(依赖资源加载)进行了系统的介绍。 适合对象:Unity初学开发者,Unity中级开发者,网络程序开发者,所有对游戏开发有兴趣的人员。 学习条件:有一定的Unity3D基础,了解C#的基本开发知识。

    4631 人正在学习 去看看 张刚

话不多说,直接开始。。。。。。。。。

1:打开unity,将主摄像机删除掉,找到MojingMain.prefab,添加到场景中

2:创建Sphere。

3:创建材质球,Shader设置为 Mobile/Particles/Alpha Blened,添加全景图

4:搜索IntegrateInputManager.prefab预制体,添加到场景中。

5:创建一个空对象,名字修改为Overlay,为其添加SetOverlay.cs脚本。

6:在MojingMain→MojingVrHead下创建空对象,并将空对象的名字修改为GazePointer。

7:将MojingMain放到Sphere里面。

8:创建EventSystem,添加脚本GazeInputModule.cs,和 Touch Input Module.

9:将GazePointer对象添加到GazeInputModule.cs下

2014-12-04 14:47:53 qq617119142 阅读数 4338
  • Unity3D入门到精通-(3)Unity资源管理精讲

    本次系列课程的目标是让Unity3D初学者掌握Unity3d的资源管理技术进行了全面介绍,特别对AssetBundle资源如何进行更新,以及加载(依赖资源加载)进行了系统的介绍。 适合对象:Unity初学开发者,Unity中级开发者,网络程序开发者,所有对游戏开发有兴趣的人员。 学习条件:有一定的Unity3D基础,了解C#的基本开发知识。

    4631 人正在学习 去看看 张刚
using UnityEngine;
using System.Collections;

public class ScemeMove : MonoBehaviour {
	private Vector3 rota;
	public float x_speed = 50f;
	public float y_speed = 50f;
	public float m_speed = 10f;
	public float f_speed = 10f;
	public float h_speed = 1f;
	public float groundDis = 5f;
	public float skyDis = 50f;
	public Camera camera;
	// Use this for initialization
	void Start () {
		camera = Camera.main;
		rota = camera.transform.eulerAngles;
	}
	
	// Update is called once per frame
	void Update () {
		//鼠标右键
		if(Input.GetMouseButton(1)){
			rota.y += Input.GetAxis ("Mouse X") * x_speed;
			rota.x -= Input.GetAxis ("Mouse Y") * y_speed;
			Quaternion q = Quaternion.Euler (rota);
			camera.transform.rotation = q;
		}
		//滚轮滑动
		float middle = Input.GetAxis ("Mouse ScrollWheel");
	
		camera.transform.position += -Vector3.up * middle * m_speed + (Vector3.forward * middle * f_speed);
	
		//空格
		if(Input.GetKey(KeyCode.Space)){
			middle = -0.1f;
			camera.transform.position += -Vector3.up * middle * m_speed + (Vector3.forward * middle * f_speed);
		}

		//WASD
		float h = Input.GetAxis ("Horizontal");
		float v = Input.GetAxis ("Vertical");
		camera.transform.position += camera.transform.right * h * h_speed;
		camera.transform.position += camera.transform.forward * v;
		clamp ();

	}

	private void clamp(){
		Vector3 upUp;
		upUp = camera.transform.position;
		upUp.y = Mathf.Clamp (upUp.y,groundDis,skyDis);
		camera.transform.position = upUp;
	}
}

没有更多推荐了,返回首页