unity官方教程space shooter 学习文档


如题,在学习unity的过程中,发现可恶的只能在线看视频,网速严重受限的我感觉很是烦恼,快进一下,诶,不动了,过了一会儿。。。黑屏,就能看到刷新的字样

千辛万苦找到可以下载的视频,打开一看,字幕是英文的。。。英文的。。。英文的(为什么说三遍你懂得)

虽然我英文不是很菜。。。基础的都能看懂,但是专业术语看着还是很伤心。。。用翻译又翻译的连亲妈都认不出来

英文版下载链接http://pan.baidu.com/s/1c0DHDs8

所以我就写篇文档,方便随时查看  (又没WiFi了,我现在在用手机流量写这篇博客。。。大哭


写的有点粗糙加无脑。。。凑活着看吧

 

          Unity            space shooter

1save scene 

2,拖动飞机模型到场景中并reset

3,为飞机添加rigidbody组件

4,为飞机添加胶囊触发器 capsule collider,后来又改成mesh collider

5,调整方向directionz

6,添加prefab里的喷射粒子特效

二,

1,调整摄像机 reset

2x角度为90度,使摄像机朝下,调整y

3,调整投射为直角orthographic

4,移动飞机位置,采用飞机位于中心点不动,移动camera视角的方法

5clear flags 设为 solid color

6create directional light

7, reset

8,rotation x = 20 , y = -115 照射使右边亮

9,光照强度 intensity 调为 0.75 更接近太阳光

10,复制一个光,并命名为fill light ,使其角度照射左边,设intensity0.15,比右边稍暗

设置color,淡蓝色。。。其实光照这部分复杂而且效果。。。就当学习了

11Ctrl + shift +n 创建空的gameobject,将两个光移动到里面,方便整理

 

 

1,禁用player create 3d object, quad 命名为 BackGround,看不到quad,换到scene场景,调整x角度为90

2,取消 mesh coliider,用不到

3,拖动texture中的背景图到quadBackGround)中,这是纹理,我们没创建材质(纹理是材质的一部分),unity自动帮我们创建,放在mesh  renderer中,创建的纹理默认使用diffue shader(但是我这儿是standard)。。。后面作者换成了specular,即standardDiffuse属于漫反射,后者属于镜面反射。最后换成unlit texture,不受光照,这时候变亮了

4,图片拉伸,为防止拉伸后失真,要保证图片宽高比不变,竖屏游戏中,宽拉满,高乘比例。: 15, : 30。。。。。(先分层,设置不同layer,调整背景层y为负值,使其与飞机分开层

1,为player创建脚本Done_PlayerController

建立FixedUpdate函数,在每个固定物理时间步被调用,放置物理行为代码的地方

2,在函数中编写

public float speed; 速度

 

float moveHorizontal = Input.GetAxis ("Horizontal");  水平轴

float moveVertical = Input.GetAxis ("Vertical");    垂直轴

 

Vector3 movement = new Vector3 (moveHorizontal, 0.0f, moveVertical);

GetComponent<Rigidbody>().velocity = movement * speed;

使飞船可以移动

3,继续编写代码设定飞船可移动范围

 

[System.Serializable]     序列化(储存并转移信息的一种方法)该类,unity才能显示出来

public class Done_Boundary    另外定义一个共有类,里面的属性可以被其他对象共用

{

public float xMin, xMax, zMin, zMax;

}

 

在我们的类Done_PlayerController中实例化Done_Boundary 

public Done_Boundary boundary;

 

GetComponent<Rigidbody>().position = new Vector3   定义xz范围

(

Mathf.Clamp (GetComponent<Rigidbody>().position.x, boundary.xMin, boundary.xMax), 

0.0f

Mathf.Clamp (GetComponent<Rigidbody>().position.z, boundary.zMin, boundary.zMax)

);

 

保存在unity中调试xMin, xMax, zMin, zMax的值 -6,6-4,8

 

4public float tilt;

GetComponent<Rigidbody>().rotation = Quaternion.Euler (

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值