碰撞检测。
2d 3d碰撞体,区分开。
防止一个运动体旋转, 刚体的constrations z轴给它锁上。
抖动。
fixedUpdate 固定物理帧,匀称。会有物理上受力的影响。就不会抖动了。刚体放到这里来。。
Rigibody2d fixed
碰撞检测。
2d 3d碰撞体,区分开。
防止一个运动体旋转, 刚体的constrations z轴给它锁上。
抖动。
fixedUpdate 固定物理帧,匀称。会有物理上受力的影响。就不会抖动了。刚体放到这里来。。
Rigibody2d fixed
2D转向效果实现。
1.更换图片,
2.旋转角度。
更改Sprite Render的图片。
控制玩家移动,
获得轴上的值。
GetAxisRaw
配合 transform.Translate.没有物理效果就用这个。
方向, 坐标轴(世界)
以米为单位。创建cube来对比大小。
gizoms 记得勾选上。
创建预制体。
直接改变sprite render的图片。
创建动画。
将图片一起放上去。
摄像机。 size 8.5 背景黑色。 5:4窗口
一点一点调试。
给素材加工。把图集裁剪。
Texture Mode 变成UI.
单张图片Single
图集 mutiple.图集。需要切割。
Prite Editor 进行切割。
slice 自动切割。 slice 切割。
第二个以固定格来切。
调整。先获得数值,然后第二个,设置一下,切割。
碰撞
两个物体身上有碰撞器
其中一方是刚体 一般在运动的一方上
因为刚体会休眠 就不会发生碰撞jian'c
图片使用SpriteRender组件控制。
改变坦克移动时的朝向:(1)使用代码控制多张图片进行轮换;(2)代码控制单张图片进行旋转
第一个参数沿着世界坐标系移动,第二个参数可以不添也可以添Space.self 如果沿着物体方向移动第二个参数必须填Space.World
private SpriteRenderer sr;
private void Awake
sr =
第一张是0
第二张是8
第三张是16
第四张是24
第五章是28
Scripts:存放脚本
Prefabs:用来存储预制体(场景中的角色物体)
Animation:用来存储动画
AnimatorController:用来存储动画控制器
BornController:控制器
Effect:特效文件夹
Explosion-Explode:爆炸
Shield:庇佑、屏障、保护盾
River:河流
FixedUpdate():固定物理帧;每帧都是执行固定的;
GetAxis()与GetAxisRow();相似
Time.deltaTime:按照每秒移动
Space.World:世界坐标轴;
float h=Input.GetAxisRow("Horizontal")
transform.Translate(Vector3.Right*h )
//h返回值1到-1的float类型的小数;
float v=Input.GetAxisRow("Vertical")
transform.Translate(Vector3.up*h)
Texture Type(贴图显示):默认Default;
改成Sprite(2D and UI))点击Apply;
tranaform.Translate();
如果第一个参数填沿着世界坐标系移动,第二个参数可以不填也可以填Space.self;
如果第一个参数填沿着自身某个方向移动,第二个参数必须填Space.World;
解决人物斜划的问题:
添加优先级先执行“V”在执行“H”
if (v!=0){return;}
渲染优先级
Sorting Layer
Order in Layer(数值)
固定物理帧
private void FixedUpdate(){添加刚体物体的所有指令}
实例化:
Instantiate(item[0],new Vector(0,-8,0),Quternion(0,0,0));
调用
collision.Sendmessage("Die")
区别玩家和敌人的子弹
public bool isplayerBullet;
if (!isplayerBullet)
{
collision.SendMessge("Die");}
墙
Destroy (collision.gameObject;
Destroy(gameObject);
障碍;
Destroy(gameObject);
heart d 改变:
private SpriteRenderer sr;
void Start(){
sr = GetComponet<SpriteRenderer>();}
public void Die(){
}
transform.Translate(transform.up*movespeed*Time.deltaTime,Space.World);