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

【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开发 VR