当物体运动速度远小於光速可被视为理想刚体,可以忽略型变,也就是说被碰撞後形状会保持一样。
也就是说刚体在物理中被视为不形变的物体。
替物件上新增元件"刚体",使物件可以使用物理系统。
由於是制作2D游戏,选择Rigidbody 2D。
运动种类Body Type,可以选择物理系统
1.Dynamic 动力,运动时受力影响。
2.Kinematic 运动,不受力影响但会运动。
3.static 固定,不受力影响也不会动。
物理属性
1.Mass质量,F=ma,会影响碰撞速度,大质量去撞小质量,小质量会用较快的速度飞出去。
2.Drag阻力,分为线性阻力和角阻力。像摩擦力一样,决定慢下来的速度。
3.Gravity Scale重力大小,物体受重力影响的程度。
※环境重力可以调整(Edit → Project Settings... → Physic 2D)
碰撞侦测Collision Dectection
1.Discrete 非连续性
2.Continuous 连续性
睡眠模式Sleeping Mode
睡眠模式决定rigidbody要不要工作(启用),醒着就要,睡着就不用,可透过事件改变状态。
1.Never Sleep 不睡,一直都醒着
2.Start Awake 开始时醒着
3.Start Asleep 开始时睡着
差值Interpolate
差值,系统推算与差值,负责改善不规则位移,如果运动起来有不明抖动可以打开这个修正。
1.None 无
2.Interpolate 差值,根据前一帧的位置进行平滑
3.Extrapolate 推算,推算下一帧的位置进行平滑
限制Constraints
1.Freeze Position X Y ,限制X轴或Y轴位移,可以做成平移或垂直移动。
2.Freeze Rotation Z ,限制Z轴转动,这样人物就不会翻转,才不会头下脚上。
void Awake() //或是void Start()
{
Rigidbody2D rb; //建立刚体2D,名叫rb(自己取)
rb=GetComponent<Rigidbody2D>(); //抓取物件的刚体
}
void Update()
{
movement();
}
private void movement()
{
if (Input.GetKey("d")) //其他方向以此类推
{
rb.velocity= Vector2.right;
}
}
另外可以使用Rigidbody2D.MovePosition这个方法(请参阅unity手册)
因为如果把dialog写在viewmodel里面,之後在自动化测试的时候可能会出问题,所以在mvvm...
JavaScript Array (阵列) 阵列 (array) 是一个有序的序列,阵列中可以储存不...
用 PubSub 更新游戏状态 现在我们要让玩家订阅游戏的状态 并让游戏在状态更新的时候,广播到双方...
今天继续来写测试啦!!昨天我们测试destory方法後,今天我想写store的测试。 首先,我们先测...
这几天的内容中,我们已经学到了几个重点: 泛型(generics)的使用 使用 extends 限制...