004_生命修改和触发器
生命修改
using System.Collections;
using System.Collections.Generic;
using Unity.VisualScripting;
using UnityEngine;
using UnityEngine.PlayerLoop;
public class RubyController : MonoBehaviour
{
//最大生命值
public int maxHealth = 5;
//当前生命值
public int currentHealth;
// 将速度暴露出来,使其可调
public float speed = 4f;
//声明刚体对象
Rigidbody2D rigidbody2D;
//获取用户输入
float horizontal;
float vertical;
// 在第一次帧更新之前调用 Start
void Start()
{
//获取当前游戏对象的刚体组件
rigidbody2D = GetComponent<Rigidbody2D>();
//游戏开始,玩家满血
currentHealth = maxHealth;
}
// 每帧调用一次 Update
void Update()
{
/* 根据按键移动上下左右的位置:每帧移动0.1 */
//获取水平输入,按向左会获得-1.0f,按向右会获得1.0f
horizontal = Input.GetAxis("Horizontal");
//获取垂直输入按向下会获得-1.0f,按向上会获得1.0f
vertical = Input.GetAxis("Vertical");
}
//固定时间间隔执行的更新方法
private void FixedUpdate()
{
//获取对象当前位置
Vector2 position = rigidbody2D.position;
//更改位置,Time.deltaTime 每帧的时间间隔,float 类型
position.x = position.x + speed * horizontal * Time.deltaTime;
position.y = position.y + speed * vertical * Time.deltaTime;
//新位置给游戏对象
rigidbody2D.position = position;
ChangeHealth(1);
}
//更改生命值的方法
void ChangeHealth(int amount)
{
//限制方法,限制当前生命值的赋值范围:0~最大生命值
currentHealth = Mathf.Clamp(currentHealth + amount, 0, maxHealth);
Debug.Log("当前生命值:" + currentHealth + "/" + maxHealth);
}
}
标签:触发器,float,004,生命,修改,using,currentHealth,position,public
From: https://www.cnblogs.com/mzx233/p/18639556