Step 5:
物理系统的创建
首先添加Collider组件
但是存在两个问题:
1)人物会有旋转效果
取消Z轴的变化
2)会有抖动效果
将Rubycontroller里的代码进行修改
使用Rigidbody2D的坐标
而非transform的坐标
1.点击素材里的图片
点击Spirate Editor
然后调整中心点,使其符合2D特征
2.点击prefab,添加collider 组件
然后选择有效区域
最后调整Spirate Sort Point 为Pivot
Step6:
增加生命值系统
进入RubyController.cs
public int currentHealth;
public int maxHealth = 5;
void ChangeHealth(int amount)
{
//限制方法,限制当前生命值的赋值范围:0-最大生命值
currentHealth = Mathf.Clamp(currentHealth + amount, 0, maxHealth);
Debug.Log("当前生命值" + currentHealth+"/"+maxHealth);
}
Step 7:
添加触发器
现在已经为主角添加生命值,接下来添加生命值触发器
当角色进入触发器的时候,你将收到一条消息,以便你可以处理该事件
勾上 Is Trigger
添加脚本组件,添加事件
private void OnTriggerEnter2D(Collider2D other)
{
// Debug.Log($"和当前物体发生碰撞的对象是:{other}");
}
public int amount = 1;
private void OnTriggerEnter2D(Collider2D other)
{
Debug.Log($"和当前物体发生碰撞的对象是:{other}");
//获取Ruby游戏对象的脚本对象
RubyController rubyController = other.GetComponent<RubyController>();
if (rubyController != null)
{
if (rubyController.health< rubyController.maxHealth)
{
rubyController.ChangeHealth(amount);
//销毁当前游戏对象
Destroy(gameObject);
}
else
{
Debug.Log("当前玩家生命值是满的");
}
}
}