窗口界面以及菜单
Scene
场景编辑窗口,用于对场景的设计以及物体的处理。![img_6a1986dd97ff4f4b1fa22a089eba4648.png](https://i-blog.csdnimg.cn/blog_migrate/cb5c0e1cfd8b6076504915a72d4c1663.png)
![img_16057ac0a8109544473038cc49c36f8d.png](https://i-blog.csdnimg.cn/blog_migrate/792af6fb91f88e5071ec826cfbfd0296.png)
这个时候按住鼠标右键可以对场景查看,全景查看。按下w,s可以对镜头远近调节,a,d可以左右位移,如果仅仅是鼠标左右移动那就仅仅只能旋转而已。
Game
游戏运行窗口。
![img_e2c17d8bac755e7733bc589c2e786c30.png](https://i-blog.csdnimg.cn/blog_migrate/ca10dbf60c65ade21be9284dcc51f4fd.png)
![img_dbcd7173c03e7aa7650f57a91a5a8f5c.png](https://i-blog.csdnimg.cn/blog_migrate/de775b74f5ecec2d799c16acbf3983d3.png)
![img_5b4cdcd4a3b15638a9ae1e33953fa729.png](https://i-blog.csdnimg.cn/blog_migrate/a32e25e30a5b64dd46e7fe3cd5712c34.png)
![img_b3c082d97ae6876ace7fbda2dd89f1a2.png](https://i-blog.csdnimg.cn/blog_migrate/1127357b72bdf1034023352b83c1fccf.png)
Hierarchy
场景物体,列表窗口。
![img_6bdbc967814a5469e1112326a76d105b.png](https://i-blog.csdnimg.cn/blog_migrate/e729bede317af1e83f9dcd30801ce4a0.png)
在unity里面列表里面所有的场景都会以列表的形式展示在Hierarchy里面。双击就可以定位到物体处。同时也可以搜索,没有搜索到,不匹配的物体都会是灰色,匹配到的才会是彩色。
Project
项目资源,列表窗口。
![img_faa6f0b936bd86676263dcb83311f464.png](https://i-blog.csdnimg.cn/blog_migrate/7360813b07a311d77a3a22f3163bc5aa.png)
游戏的资源都会显示在ASssets里面,和window的文件系统的一样的,但是unity会自动生成每一个文件的mets的后缀文件,如果想要移动资源,那就需要在unity里面移动,这条mets文件才会跟随移动,上方的Favorites可以选择特定物体。
Inspector
属性编辑,列表窗口。![img_7761f26c3fe68dbf466a971979503188.png](https://i-blog.csdnimg.cn/blog_migrate/55651accf5c91b1766063dc887fa76a7.png)
点击每一个物体都会有对应的属性,比如transform就保存了位置信息。
File菜单
![img_30db1f0b5a8176019ec02b1b662e12d9.png](https://i-blog.csdnimg.cn/blog_migrate/98b2fb600da7599cd5c93bb1024d3265.png)
![img_911e471a34894e6e6ce87557ed0ca542.png](https://i-blog.csdnimg.cn/blog_migrate/b022d498ced2424e38ee2e960d7c3358.png)
点击Player Setting就是到对于一些平台属性的修改。
![img_fedf1fc769ed386a64e32001509d0172.png](https://i-blog.csdnimg.cn/blog_migrate/0e4d20ef83222924f81949c550e30eda.png)
Edit编辑菜单
![img_4924adc07d6deb82435e41a88a57e50c.png](https://i-blog.csdnimg.cn/blog_migrate/62c69dc75b34a8cd679747bf3c7952c8.png)
![img_ea21ad73b6967571cf9b2191a12a05dc.png](https://i-blog.csdnimg.cn/blog_migrate/0efd0dedbb242e6c6a01e2e2a8ea86c5.png)
![img_77f5ab4aa7c640651d17c44403a2c376.png](https://i-blog.csdnimg.cn/blog_migrate/162fdc6356a69db0a17c459c9ce0e396.png)
File是对于整个项目的打包发布等等的设置,而Edit是对编辑器的一些设置,而下面要提到的Assert是对项目资源的一些管理。
Assert菜单
首先下拉第一个create:
![img_2ac5adfe3a764577979090c21ad06b25.png](https://i-blog.csdnimg.cn/blog_migrate/5e77fe0d7fcc77edc997bbc37cf15482.png)
添加文件,添加脚本,添加材质资源,添加动画,以及GUI和字体等等。
GameObject菜单
这个菜单就是对Hierarchy的管理了。选中一个物体,点击move to view就可以直接跳到当前物体,也就是camera会到这个物体的正前方。gameobject游戏物体,场景中所有的东西都是游戏物体,包括了游戏场景,都是物体。
坐标系
常规下坐标系一般是xyz轴:
![img_116a32d218693e57a18e38ac4e364928.png](https://i-blog.csdnimg.cn/blog_migrate/a7574ceb0ab56e0e89ade28302406757.png)
![img_2b0d6a77a4aa27a371d517a5f65982d4.png](https://i-blog.csdnimg.cn/blog_migrate/8f616615f9a306930f239f60688e742e.png)
![img_3afc4489993d4afadab41d346ae0d3ad.png](https://i-blog.csdnimg.cn/blog_migrate/ba00a5e91e505ae3c439e168c9e9ff25.png)
![img_079a0c2b4b16be90e5eac4a8e98948ca.png](https://i-blog.csdnimg.cn/blog_migrate/b60cb4bc00d3c745b02deede71f4dea1.png)
![img_938c2cdd168a7e7ee8771311985e8d72.png](https://i-blog.csdnimg.cn/blog_migrate/cbb1517d7a32150341b80fa1d73b2580.png)
把物体拖上去之后位置没有变化,但是相对的坐标系改变了。
![img_af0d1a187854bae1437ba3ed9988c0a8.png](https://i-blog.csdnimg.cn/blog_migrate/b48377fc9da61b3e5c96c61a672f48ef.png)
Roll A Ball
游戏环境
首先是创建工程,unity5一开始就自带了一个默认场景,上面提到了,所有的资源包括了场景物体等等都是保存在了Assert这个资源下。首先是创建一个游戏环境,直接搭就好了,创建五个cube,按照比例拉长排列就好,为了管理方便,最后·把他们放在ground下面统一管理。![img_66180deec8f1ed4fd58000952fae71ca.png](https://i-blog.csdnimg.cn/blog_migrate/0fb964c48d287eb87e3979d6fd70e2ed.png)
物体创建
添加一个球体然后调一下大小即可。
![img_cce4460710c2c8380bcb2d09903c8d1e.png](https://i-blog.csdnimg.cn/blog_migrate/93ac37b5ecf92f1efdc361a99d52efbe.png)
添加脚本
添加脚本这个操作很简单。要做的处理是,首先需要得到这个组件的刚体,然后控制上下移动。初始化的C#脚本是这样的:![img_42af874906bb78ce9300ab28dc475fcc.png](https://i-blog.csdnimg.cn/blog_migrate/6612fb72df5485e75f05a2de8f98c89a.png)
![img_67661eadd18ed27e921ad920f821ad28.png](https://i-blog.csdnimg.cn/blog_migrate/73ed3dc0c7555b77b7906ff2b35a6497.png)
![img_7699168086b939531d74ba4d4c7b6e4d.png](https://i-blog.csdnimg.cn/blog_migrate/9f5fa9b148bef86ef4f4de629c343f3b.png)
如果想通过键盘移动,可以使用Input这个类。
![img_10de45ddd6f09daeea8b5d354ef606d0.png](https://i-blog.csdnimg.cn/blog_migrate/a82896222eae9832769dcecbf53b512e.png)
![img_51d98fbe5e1fb5cd962cdf5f16eb909e.png](https://i-blog.csdnimg.cn/blog_migrate/2dce1aea64771dc23b8088e2cfc0ce10.png)
相机跟随
完成了移动,那么就还有相机跟随了,很明显,现在这个相机视角,我不服。首先在scene找到一个比较好的视野,然后点击GameObject-Align with view把相机定位到当前视野,之后就用代码来调整了。相机同步无非就是相机和物体的偏移量不变而已,也就是相机和物体的相对位置保持不变。![img_e272c92c5bf71bef1f116e9740c8029a.png](https://i-blog.csdnimg.cn/blog_migrate/99e655261b77039944a9916394a02e36.png)
首先定义一个Transform的变量,用来存储小球的位移信息,由于是public变量,可以直接可视化的把小球的transform直接拖过来就好了。start先得到偏移量,然后update进行同步过程即可。
控制移动范围
加四个小墙就好了。
添加食物
首先创建一个小正方形,然后把它放到Assert一个文件夹下,也就是把它做成一个预制体,通俗点说就是模型,往后只要是从这个模型赋值出来的物体,那么只要模型改变,全部都会变。使得食物旋转,一样的现在模型上创建脚本,如果是一个一个改那很麻烦,所以模型上改,transform有一个rotate方法。
![img_bd4acde638e7923ac9eb349c7c9e2517.png](https://i-blog.csdnimg.cn/blog_migrate/0b7f26f409427822ecdc89ce28bbcd99.png)
update方法一秒大概调用60次。
碰撞检测
如果移动小球,那么如果碰到了食物是会被挡住的。首先就是碰撞检测的问题,unity的API已经给出了碰撞的函数,朱啊哟讨论的有两种,一种是直接的碰撞检测,
![img_cdf60d785b783ee1e7e9ff635baa37ce.png](https://i-blog.csdnimg.cn/blog_migrate/82e7be53d2732d8c93b22d488ce28d71.png)
![img_d7904b57360a31719e473736da92fd35.png](https://i-blog.csdnimg.cn/blog_migrate/87099e27776b7d6f86d2680dde1aa9e0.png)
![img_f232e8280b4e48592cfda386c80494b5.png](https://i-blog.csdnimg.cn/blog_migrate/02feae14bae4c1bc5b1cdd0d1d6ec68e.png)
![img_cefd3536d8e798fce23de0dc9c7904b1.png](https://i-blog.csdnimg.cn/blog_migrate/a60a217a7e57d63c4b61b09accc20bb2.png)
分数啊什么的很简单。
显示分数以及胜利
在右键UI添加text,然后再player脚本里面获得者两个对象,由于胜利了这个是要最后赢了才全部出现,所以需要先取消激活,也就是不勾上右上角:![img_44f034c28dfa94e12107d8b335335028.png](https://i-blog.csdnimg.cn/blog_migrate/7cf1ee49550e31ca7d0673a543d0c82b.png)
代码激活,上面写了,setActive即可。前面的风格和后面的风格差异有点大,一个是2018一个是5.5,因为5.5不能用GitHub for unity,所以把5.5的版本移植到2018再提交到GitHub,emmm。
![img_03b29a279180f61ca3280071322c678b.png](https://i-blog.csdnimg.cn/blog_migrate/fe5daa5f1c2bd259009051245ac4fd72.png)
GitHub
最后附上GitHub代码:https://github.com/GreenArrow2017/Roll-A-Ball