You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Unity中使用C#实现玩家启动后自动向前移动

Unity跑酷类游戏玩家自动向前移动实现

修改步骤如下:

  • 新增[SerializeField] private float forwardSpeed = 8f; 字段,可直接在Inspector面板调整前向移动速度,数值根据你的游戏节奏自行配置
  • 在Update方法的位移逻辑中,添加Z轴的前向位移增量即可

修改后的完整代码:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class PlayerController : MonoBehaviour{
    
    private SwerveInputSystem _swerveInputSystem;
    [SerializeField] private float swerveSpeed = 5f;
    [SerializeField] private float maxSwerveAmount = 1f;
    // 新增前向移动速度参数
    [SerializeField] private float forwardSpeed = 8f;

    void Start(){
        _swerveInputSystem = GetComponent<SwerveInputSystem>();
    }


    void Update(){
        float swerveAmount = Time.deltaTime * swerveSpeed * _swerveInputSystem.MoveFactorX;
        swerveAmount = Mathf.Clamp(swerveAmount, -maxSwerveAmount, maxSwerveAmount);
        // 第三个参数为Z轴前向位移,按时间增量计算避免帧率影响移动速度
        transform.Translate(swerveAmount, 0, forwardSpeed * Time.deltaTime);
    }
}

额外说明:

  • 如果你的游戏前向不是世界坐标Z轴正方向,可以在transform.Translate最后加Space.Self参数,改为transform.Translate(swerveAmount, 0, forwardSpeed * Time.deltaTime, Space.Self);,就会沿玩家自身正前方移动
  • 如果需要做速度随时间递增的难度进阶效果,可以在Update中加forwardSpeed += 0.01f * Time.deltaTime;之类的逻辑,自行调整增速数值即可

内容的提问来源于stack exchange,提问作者user16240688

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 20:15:03