using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class SaveGameTest : MonoBehaviour
{
public SaveLoad saveLoad;
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
if(Input.GetKeyDown(KeyCode.LeftControl) && Input.GetKeyDown(KeyCode.S))
{
saveLoad.SaveWithTime();
}
}
}
这样做只是什么都不做。
在行上使用断点:
saveLoad.SaveWithTime();
如果我仅按 Ctrl 或仅按 S 或同时按 Ctrl + S,则永远不会到达此行
我想要组合 Ctrl + S 进行保存。
但是当我按下 Ctrl + SI 看到消息时,我看到 Ctrl + S 正被编辑器占用:
所以我有两个问题:
如何让组合键同时按下?
如果 Ctrl + S 已被编辑器采用,哪些组合键可以作为保存逻辑?
您不太可能在完全相同的框架中按下两个按钮。看Input.GetKeyDown
在用户开始按下由 key KeyCode 枚举参数标识的键的帧期间返回 true 。
而跟踪连续使用压机的第一个Input.GetKey
当用户按住由 key KeyCode 枚举参数标识的键时返回 true 。
if(Input.GetKey(KeyCode.LeftControl) && Input.GetKeyDown(KeyCode.S))
如果 Unity 根本不允许 CTRL+S,那么您可以使用依赖于平台的编译来伪造它,例如
#if UNITY_EDITOR
if(Input.GetKey(KeyCode.LeftAlt) && Input.GetKey(KeyCode.LeftControl) && Input.GetKeyDown(KeyCode.S))
#else
if(Input.GetKey(KeyCode.LeftControl) && Input.GetKeyDown(KeyCode.S))
#endif
所以仅对于编辑器它是 CTRL+ALT+S 而稍后在构建的应用程序中它将是 CTRL+S
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句