簡體   English   中英

如何使用 C# 在 Unity 中讓玩家自己前進

[英]How to make player move forward by it's own in Unity using C#

我制作了玩家移動腳本。 這樣你就可以用鼠標/手指將玩家移動到左/右,我想添加代碼,讓玩家在開始時自己向前移動。 所以基本上就像平台跑步者。 這是我的代碼:

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;

    void Start(){

        _swerveInputSystem = GetComponent<SwerveInputSystem>();
    }


    void Update(){
        float swerveAmount = Time.deltaTime * swerveSpeed * _swerveInputSystem.MoveFactorX;
        swerveAmount = Mathf.Clamp(swerveAmount, -maxSwerveAmount, maxSwerveAmount);
        transform.Translate(swerveAmount, 0, 0);
    }
}

引入一個verticalSpeed變量並將其包含在您的Translate()調用中。

// You can, of course, call this whatever you'd like.
[SerializeField] private float verticalSpeed;

void Update(){
    float swerveAmount = Time.deltaTime * swerveSpeed * _swerveInputSystem.MoveFactorX;
    swerveAmount = Mathf.Clamp(swerveAmount, -maxSwerveAmount, maxSwerveAmount);
    float verticalDelta = verticalSpeed * Time.deltaTime;

    // Plug verticalDelta into Translate(). Whether you use it in the y or z component depends on your game.
    transform.Translate(swerveAmount, verticalDelta, 0);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM