我制作了玩家移動腳本。這樣你就可以用滑鼠/手指將玩家移動到左/右,我想添加代碼,讓玩家在開始時自己向前移動。所以基本上就像平臺跑步者。這是我的代碼:
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);
}
}
uj5u.com熱心網友回復:
引入一個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);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/324775.html
