携帯電話用Unity(C#)でランナーゲームを書く。一時停止が動作しない(Unity c#)
キャンバスボタンを使用して画面上に一時停止ボタンを作成しました。
また、Platformer2DUserControlスクリプトでPauseのコードを作成しました。
ここでは、このスクリプトのコードです:
using UnityEngine;
using UnitySampleAssets.CrossPlatformInput;
namespace UnitySampleAssets._2D
{
[RequireComponent(typeof(PlatformerCharacter2D))]
public class Platformer2DUserControl : MonoBehaviour
{
private PlatformerCharacter2D character;
private bool jump;
public bool paused;
private void Awake()
{
character = GetComponent<PlatformerCharacter2D>();
paused = false;
}
private void Update()
{
/*if (Input.GetButton("Fire1"))
{
}*/
if (!jump)
// Read the jump input in Update so button presses aren't missed.
jump = Input.GetButton("Fire1"); //&& CrossPlatformInputManager.GetButtonDown("Jump");
}
private void FixedUpdate()
{
// Read the inputs.
bool crouch = Input.GetKey(KeyCode.LeftControl);
// float h = CrossPlatformInputManager.GetAxis("Horizontal");
// Pass all parameters to the character control script.
character.Move(1, false, jump);
jump = false;
}
public void Pause()
{
if (!jump)
// Read the jump input in Update so button presses aren't missed.
jump = Input.GetButton("Fire1"); //&& CrossPlatformInputManager.GetButtonDown("Jump");
paused = !paused;
if (paused)
{
jump = !jump;
Time.timeScale = 0;
}
else if (!paused)
{
// jump = Input.GetButton("Fire1");
Time.timeScale = 1;
}
}
}
}
マイ一時停止ボタンがうまく機能しています。しかし、私がそれをタップすると、私のキャラクターがジャンプして、ゲームが一時停止しています。
私はボタンゲームをタップすると、一時停止してキャラクターがジャンプしないようにしたいと思います。
どうすればいいですか?手伝ってくれてありがとう。
あなたは本当に正直なところ、「タイムスケール」トリックを使ってユニティゲームを「一時停止」することはできません。つまり、正直なところ、神様、正直なところ***ではなく、任天堂のゲームを一時停止する方法ではありません。これは、何年も前にUnityフォーラムで言及された本当に信じられないほど馬鹿げたアイデアであり、インターネット上でコピーされています。それは完全にばかげている。 – Fattie
ゲームエンジニアリングで「一時停止」することは、非常に芸術的な形です。シーン内にあるオブジェクトのクラスごとに、そのタイプのものに対してポーズコード*を書く必要があります。それはゲーム工学で休止の概念を実装する*唯一の方法です。 – Fattie
さて、どうやって一時停止することができますか? @JoeBlow –