运动似乎不稳定,但FPS很好

时间:2017-04-21 00:05:53

标签: c# unity3d unity5

所以我刚刚写完我的动作脚本,我的游戏看起来像帧率低。我启动了fraps,发现我的游戏运行速度为60FPS。可能是什么问题?顺便说一句,这也是一款自上而下的RPG风格游戏。 如果有帮助的话,这就是我的动作脚本:

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

public class PlayerMovement : MonoBehaviour {
Vector2 _playerPosition;
public GameObject Player;
// Use this for initialization
void Start () {
    _playerPosition = Vector2.zero;
}

// Update is called once per frame
public float speed = 3f;
void Update()
{
if (Input.GetKey(KeyCode.W))
{
    transform.position += Vector3.up * speed * Time.deltaTime;
}

if (Input.GetKey(KeyCode.S))
{
   transform.position += Vector3.down * speed * Time.deltaTime;
}

if (Input.GetKey(KeyCode.D))
{
    transform.position += Vector3.right * speed * Time.deltaTime;
}
if (Input.GetKey(KeyCode.A))
{
    transform.position += Vector3.left * speed * Time.deltaTime;
    }
}

}

1 个答案:

答案 0 :(得分:1)

观看YouTube教程对于学习Unity的新功能非常有帮助。看看4 min,你会看到我会为你的转换尝试的代码:

if (Input.GetKey(KeyCode.D)){
    transform.Translate(speed * Time.deltaTime,0f,0f); //x,y,z
}

我在问题评论中提出的建议,我会将你的if语句放在更新之外的方法中,并调用方法说每一秒都是这样,Unity有一个很好的question/answers社区

InvokeRepeating("MyMethod", 1f, 1f); //I believe this is every second

我还会对你的代码进行建议更改,这会改变线条并允许左,右,上,下以及操纵杆移动的A,D,W,S和我们的移动键。

void Update(){
    transform.Translate(speed * Input.GetAxis("Horizontal") * Time.deltaTime, 0f, 
                      speed * Input.GetAxis("Vertical") * Time.deltaTime)
}