Bootstrap

游戏开发第一次总结经验

空洞骑士类型制作;
小骑士的翻转;
private void Direction()
{
    if (moveX > 0)
    {
        transform.localScale = flippedScale;

    }
    else if (moveX < 0)
    {
        transform.localScale = Vector3.one;
    }    
}
分析解释:
1.
函数定义:
2.
private void Direction(): 这是一个私有函数 Direction,没有返回值 (void)。它用来调整角色对象的缩放。
3.
条件判断:
4.

if (moveX > 0): 如果水平移动量 moveX 大于 0,即角色正在向右移动。

transform.localScale = flippedScale;: 将角色的本地缩放设置为 flippedScale。这里假设 flippedScale 是一个 Vector3 变量,用来表示角色在水平翻转时的缩放状态,通常用来实现角色朝右时的镜像效果。

else if (moveX < 0): 如果水平移动量 moveX 小于 0,即角色正在向左移动。

transform.localScale = Vector3.one;: 将角色的本地缩放设置为 Vector3.one,即正常的缩放状态。Vector3.one 表示缩放为正常大小,即 (1, 1, 1)。
5.
解释说明:
6.
函数中的 transform.localScale 用于控制角色对象的本地缩放。这个属性影响了角色在场景中的尺寸大小和方向。
当 moveX > 0 时,通常表示角色向右移动,因此设置 transform.localScale 为 flippedScale 可能会导致角色在水平方向上的翻转效果。
当 moveX < 0 时,通常表示角色向左移动,因此将 transform.localScale 设置为 Vector3.one 会将角色恢复到正常的方向和大小。
这种方法通常用于在角色转向时实现水平方向的镜像效果,例如在角色面朝右时显示正常的形象,在面朝左时进行翻转。
 
 对于小骑士的移动:

    // 获取水平和垂直输入
    moveX = Input.GetAxis("Horizontal");
    moveY = Input.GetAxisRaw("Vertical");

    // 根据水平输入调整刚体的速度
    rigi.velocity = new Vector2(moveX * moveSpeed, rigi.velocity.y);

    // 根据水平输入设置动画状态
    if (moveX > 0)
    {
        moveChangeAni = 1; // 向右移动
    }
    else if (moveX < 0)
    {
        moveChangeAni = -1; // 向左移动
    }
    else
    {
        moveChangeAni = 0; // 静止
    }

    // 将动画状态传递给动画控制器
    animator.SetInteger("movement", moveChangeAni);


}
分析解释:
1.
函数定义:
2.
private void Movement(): 这是一个私有函数 Movement,没有返回值 (void)。它用来处理角色的移动和相应的动画状态控制。
3.
输入处理:
4.
moveX = Input.GetAxis("Horizontal");: 获取水平轴的输入值。通常,这个值会在 -1(左移动)到 1(右移动)之间变化。
moveY = Input.GetAxisRaw("Vertical");: 获取垂直轴的输入值。使用 GetAxisRaw 可以获得没有平滑处理的输入,通常返回 -1(向下移动)到 1(向上移动)之间的整数值。
5.
刚体速度设置:
6.
rigi.velocity = new Vector2(moveX * moveSpeed, rigi.velocity.y);: 根据 moveX 的值设置刚体 (rigi) 在水平方向上的速度。moveSpeed 是一个控制移动速度的参数。
7.
动画状态设置:
8.
if (moveX > 0) { moveChangeAni = 1; }: 如果 moveX 大于 0,即角色向右移动,则则将 moveChangeAni 设置为 1。
else if (moveX < 0) { moveChangeAni = -1; }: 如果 moveX 小于 0,即角色向左移动,则将 moveChangeAni 设置为 -1。
else { moveChangeAni = 0; }: 如果 moveX 等于 0,即角色静止,则将 moveChangeAni 设置为 0。
9.
动画控制器设置:
10.
animator.SetInteger("movement", moveChangeAni);: 将 moveChangeAni 的值传递给动画控制器 (animator) 中名为 "movement" 的整数参数。这个参数通常用来控制角色动画的不同状态,比如走路、跑步、站立等。

 

 

;