【Unity】开发日志1——画笔 The Printer
2016-08-19 11:26
190 查看
我每天都想去学习一些东西,但是每次做一半就坚持不下去,一方面的原因是:我的的确确遇到很多困难;另一方面的确是无从下手,不知道如何去学习;
我现在就是这样不断的摸索摸索,所以就写下我摸索的过程。一方面希望能通过博客这种东西记录我自己的每一天,就像网络日记一样,这样让我觉得我的每一天没有虚度。另一方面,我也希望对像我一样的初学着有所帮助。
—————————————————————————————————— 好了前言就写到这,今天的目标是:在Unity中实现一个画笔的功能。
先展示效果图:
[align=left] [/align]
过程:
1、Create Empty,命名为Player;
PS:命名技巧,首先点击需要重命名的对象,在Unity中等名字变蓝后,再按一次左键,就可以重命名了。
2、GameObject > 3D Object > Create Cube,放在Player的子类;
[align=left] [/align]
3、MainCamera的Projection改为orthographic直角的,Size变为10;
PS:小技巧,这时记得保存一下场景,无论是MonoDevelop,还是Unity,当你修改后没有保存,在最上方的文件名都会出现一个*号,来表示修改后未保存的状态,大家可以自己观察一下;
[align=left] [/align]
4、 新建两个Cube,在Scene视图中调试(如图),最后会在Game视角里的左下,另一个在右上(为了知道世界坐标),记得设置为4:3的固定尺寸。
[align=left] [/align]
5、新建C#脚本,命名为player;
6、打开脚本,在Update函数里先实现,Play中的Cube和鼠标同步移动;
this.transform.position = Input.mousePosition;
7、保存然后把脚本拖拽给Player,测试;
8、测试发现,存在问题,空间坐标和mousePosition的坐标不一致,现在就用到之前放的Cube了,记录Cube两个坐标,算出:原点差值,两个长方形的比值。
PS:小技巧,用Debug.Log (Input.mousePosition);来测试左下角和右下角的鼠标位置对应的世界坐标;
9、之后稍作计算,得出原点差值为:(21.33f,9.88f)。比例值为21.0f;所以函数改为:
this.transform.position = Input.mousePosition / 21.0f - new Vector3 (21.33f, 9.88f, 0);
10、删除之前的Debug函数,现在实例化Cube,在start函数之前输入:
public GameObject PrintPrefab;如图
[align=left] [/align]
11、保存脚本,回到hierarchy视图中,新建一个Sphere拖回到Project栏里,做成Prefab,意为:预制件;
PS:小技巧,如果在hierarchy视图中名字为蓝色意为该Gameobject是Prefab;
12、之后把蓝色Prefab设置到之前设置的Print Prefab中;
[align=left] [/align]
13、现在开始实例化,update中代码:
if(Input.GetMouseButton(0))
Instantiate (PrintPrefab,this.transform.position, this.transform.rotation);
14、最后自己测试;
——————————————————————————————————
OK,总结一下心得吧,对于一个刚入门的小白来说的的确确前面的可能有些地方看不懂,但对于我这样稍微会一点Unity的人,又是如此的简单。
但是麻雀虽小,五脏俱全,如果要扩充还是需要做很多很多的工作;
今天就先到这里:最后分享一下
1、Unity手册很有用,可以查询很多你想了解的函数和用法,比如说实例化的Instantiate函数,在百度上查例子还是不太会用,但用Unity手册很快就明白了;
PS:英文像我一样的不好的童鞋可以用Unity圣典,也就是汉译过得Unity手册;
圣典传送门:http://wiki.ceeger.com/start
2、第一次写文,有不好的地方请指出~~~;
3、最后希望和大家共同进步。
我现在就是这样不断的摸索摸索,所以就写下我摸索的过程。一方面希望能通过博客这种东西记录我自己的每一天,就像网络日记一样,这样让我觉得我的每一天没有虚度。另一方面,我也希望对像我一样的初学着有所帮助。
—————————————————————————————————— 好了前言就写到这,今天的目标是:在Unity中实现一个画笔的功能。
先展示效果图:
[align=left] [/align]
过程:
1、Create Empty,命名为Player;
PS:命名技巧,首先点击需要重命名的对象,在Unity中等名字变蓝后,再按一次左键,就可以重命名了。
2、GameObject > 3D Object > Create Cube,放在Player的子类;
[align=left] [/align]
3、MainCamera的Projection改为orthographic直角的,Size变为10;
PS:小技巧,这时记得保存一下场景,无论是MonoDevelop,还是Unity,当你修改后没有保存,在最上方的文件名都会出现一个*号,来表示修改后未保存的状态,大家可以自己观察一下;
[align=left] [/align]
4、 新建两个Cube,在Scene视图中调试(如图),最后会在Game视角里的左下,另一个在右上(为了知道世界坐标),记得设置为4:3的固定尺寸。
[align=left] [/align]
5、新建C#脚本,命名为player;
6、打开脚本,在Update函数里先实现,Play中的Cube和鼠标同步移动;
this.transform.position = Input.mousePosition;
7、保存然后把脚本拖拽给Player,测试;
8、测试发现,存在问题,空间坐标和mousePosition的坐标不一致,现在就用到之前放的Cube了,记录Cube两个坐标,算出:原点差值,两个长方形的比值。
PS:小技巧,用Debug.Log (Input.mousePosition);来测试左下角和右下角的鼠标位置对应的世界坐标;
9、之后稍作计算,得出原点差值为:(21.33f,9.88f)。比例值为21.0f;所以函数改为:
this.transform.position = Input.mousePosition / 21.0f - new Vector3 (21.33f, 9.88f, 0);
10、删除之前的Debug函数,现在实例化Cube,在start函数之前输入:
public GameObject PrintPrefab;如图
[align=left] [/align]
11、保存脚本,回到hierarchy视图中,新建一个Sphere拖回到Project栏里,做成Prefab,意为:预制件;
PS:小技巧,如果在hierarchy视图中名字为蓝色意为该Gameobject是Prefab;
12、之后把蓝色Prefab设置到之前设置的Print Prefab中;
[align=left] [/align]
13、现在开始实例化,update中代码:
if(Input.GetMouseButton(0))
Instantiate (PrintPrefab,this.transform.position, this.transform.rotation);
14、最后自己测试;
——————————————————————————————————
OK,总结一下心得吧,对于一个刚入门的小白来说的的确确前面的可能有些地方看不懂,但对于我这样稍微会一点Unity的人,又是如此的简单。
但是麻雀虽小,五脏俱全,如果要扩充还是需要做很多很多的工作;
今天就先到这里:最后分享一下
1、Unity手册很有用,可以查询很多你想了解的函数和用法,比如说实例化的Instantiate函数,在百度上查例子还是不太会用,但用Unity手册很快就明白了;
PS:英文像我一样的不好的童鞋可以用Unity圣典,也就是汉译过得Unity手册;
圣典传送门:http://wiki.ceeger.com/start
2、第一次写文,有不好的地方请指出~~~;
3、最后希望和大家共同进步。
相关文章推荐
- 【Unity】开发日志1——画笔 The Printer
- 【Unity】开发日志2——画笔 The Printer
- 【Unity】开发日志2——画笔 The Printer
- 【Unity】开发日志3——拖尾渲染 Trial Renderer
- 第一个游戏动作开发日志——Unity2D的血条制作
- unity手游开发--开发安卓项目调试打印日志工具
- 【Unity】开发日志5——线性渲染 Line Renderer
- 【Unity】开发日志4——拖尾渲染 Trial Renderer
- 【Unity】开发日志3——拖尾渲染 Trial Renderer
- DotNet应用程序开发日志
- 开发日志(2004)
- [原创] Neo.Geo 视频帧浏览器开发日志
- 开发日志-2005-11-3
- 开发日志(2006)
- WEB 开发技术系列之三--改善JBOSS的日志功能
- Enterprise Library2.0研究(二)日志组件的开发说明
- [原创]今天开发日志管理系统,全选,多项删除功能。
- UltraVML开发日志
- 开发日志-2005.11.1
- 多语言代码生成器开发日志1