添加完Rigidbody 2D 刚体组件后 我们这个项目是不需要重力的 将组件里的Gravity Scale属性修改成0即可
Rigidbody 2D(人物) 和 BoxCollider(人物,物体) 组件搭配在一起 使游戏物体拥有发生碰撞能力
添加完Rigidbody 2D 刚体组件后 我们这个项目是不需要重力的 将组件里的Gravity Scale属性修改成0即可
Rigidbody 2D(人物) 和 BoxCollider(人物,物体) 组件搭配在一起 使游戏物体拥有发生碰撞能力
预制体是文件时更改后所有子体都会跟着更改,当预制体为子体时可以单独更改属性,不会影响母体和其他子体
当预制体单独设置后觉得效果不错想要运用到所有预制体,可以打开属性面板点击overrides点击apply all即可
注意:更改的是文件 无法使用ctrl+z
通过project setting 设置Graphics 可以设置渲染模式 想要真实渲染 将transparency设置成custom axis 自定义
做完tilemap需要解决渲染顺序和层级
使用layer(层级) 可以在2D游戏物体中的sprite renderer和地形tilemaprenderer组件中的order in layer 属性设置层级大小,值越大越后渲染值,越小越优先渲染
(最先渲染的一定是底部的)
地形一定要最底层 这里设置成-10
图片切割前需将图片的Sprite Mode属性设置为Multiple 然后再点击Sprite Editor按钮 左上角有两个箭头点击第二个 Grid by cell Count 是按照行列来切割 往c和r打出想要的行和列即可
只创建完TileMap还不行,得再创建Tiles,Tiles 再Assets下Tiles包中创建,
给瓦片地图添加刚体的操作内容需要重点关注
public int maxHealth=5;//最大生命值currentHealth;//Ruby的当前生命值
currentHealth = maxHealth;
private void ChangeHealth(int amount)
{currentHealth=Mathf.Clamp(currentHealth+amount,0,maxHealth);
}
private Rigidbody2D rigidbody2d;
rigidbody2d =GetComponent<Rigidbody2D>();
Rididbody 2D
重载,函数名相同,参数个数不同。
ugui
nui
fraiui
双方都要有碰撞器,一方持有刚体,最好是移动的一方有持有刚体。旋转设置-->constraints-->设置 rotation。抖动-->位移和刚体冲突了。使用刚体组件的移动。
tilemap collider 2d 合并碰撞 Composite collider 2d --->勾选Tilemap collider 2d 的used by composite.
调整了sprite sort point 为pivot 没有效果,锚点还是在中心点的了。
projectile:抛射物
force:力量
Instantiate:实例化
Instantiate(Object original, Vector3 position, Quaternion rotation):参数分别为生成对象,生成位置,旋转角度
Quaternion:四元数
pixels per unit:占用游戏世界中的1个单位长度的像素值
Animator在 2D 中,只有部分设置对我们有用。
Mathf.Approximately(参数1,参数2):判断两个参数是否近似相等,一般用于比较float值
Vector2.magnitude:输出二维向量的模
Vector2可以通过Set(参数1,参数2)方法赋值,也可以通过=赋值
Vector2.Normalize():归一化Vector向量的值,当向量不是非常小时,则可产生归一化,即把数值化为1或-1