开始测试是0/0,是因为maxHealth没有赋值,默认是0,currentHealth的值也是0,所以无论加多少次,当前血量都只能是0,因为是在[0,0]的区间内取值
开始测试是0/0,是因为maxHealth没有赋值,默认是0,currentHealth的值也是0,所以无论加多少次,当前血量都只能是0,因为是在[0,0]的区间内取值
碰撞器位置会歪是因为刚体和碰撞器是加在父布局上的,拖拽移动的时候是移动的子布局,相对就偏移了
new scene - file - new scene ctrl + n
或右键asset选择新scene
2by3能边开发边看游戏画面反馈
2d游戏只在z轴旋转
聚焦游戏物体:hierarchy选中游戏物体按f/双击
鼠标右键进行拖拽
滚动中间进行shi ye
跟随: CinemachineVirtualCamera组件 -> Follow
摄像机边界值: CinemachineVirtualCamera组件 -> Add Extension -> CinemachineConfiner2D
unity包管理 : Window -> Package Manage
摄像机模式: Camera -> Projection
获取键盘的输入 KeyCode.
判断某个键是否按下: Input.GetKey()
Mathf.Approximately(value1,value2) : 比较两个值近似相等的数学方法
基于中心点来判断渲染层级
Ctrl+K+C快速注释
访问级别:
所有类型和类型成员都具有可访问级别,用来控制判断是否可以允许我们访问某些成员变量和方法。可使用访问修饰符来指定声明类型或成员的可访问性。
float类型的变量?
即小数变量,0.1是不能使用的,要加f代表float{浮点型}
而整形不用加f\
住:f是float的缩写
Vector2{"矢量"是一个可以改变对象位移的类型,拥有可以改变2个值的能力,因为我们是2D游戏,只有2个可以位移的量,即XY轴所以用Vector2}
position"位置"这里指的是Unity上面的这个这个position{位置}就是Transform下的第一个这个{位置}
Vector2 position = transform.position中
Vector2 poition调用了vector2类型指定了Unity中的position的x y值{再次强调2D游戏没有z轴所以只有xy两个变量}
后面的 = transform.position指的是将这指定的xy两个值赋予在transform.positiopn上面
position.x = position.x + 0.1f;个人推断是指设置这个position.x的值{这个是x轴位移的值}不断加0.1f
最后面的tansform.position = poition;是将position.x这个不断加1的变化名称赋值给transform.position 这里联系第一行的内容我们能知道Vector2 position是transform.position赋值的
所以老师靠着位置x不断+1的循环实现了Luna在x轴上的位移.
关键:在副对象上面重新建立了一个新的xy坐标系,在此基础上进行相关对象的位移计算
T
qtgu:开箱密码
using UnityEngine;
public class PlayerMovement : MonoBehaviour
{
public float moveSpeed = 5f; // 移动速度
private Rigidbody2D rb;
void Start()
{
// 获取 Rigidbody2D 组件
rb = GetComponent<Rigidbody2D>();
}
void Update()
{
// 获取水平和垂直输入(使用键盘的 WASD 或方向键)
float horizontalInput = Input.GetAxis("Horizontal");
float verticalInput = Input.GetAxis("Vertical");
// 计算移动速度
Vector2 moveVelocity = new Vector2(horizontalInput, verticalInput) * moveSpeed;
// 应用移动速度到 Rigidbody2D
rb.velocity = moveVelocity;
}
}