name_untitledのエッセイ

IT関係で知ったことなどを記事としてあげていきます。内容に不備や質問などあればぜひコメントをよせてください。

Unity Shiftキーを押しながらの操作。

 Unityでシフトキー押しながらの操作を識別したくて、試してみた。テキストボックス使えば何もしなくても出来そうな気がするが、ラオス語フォントで試してみたらちょっとうまくいかない。

そこで、キーコードをひろって、そこから文字に変換する処理を組んだ。

こんな感じ。

using UnityEngine;
using System.Collections;
using UnityEngine.UI;

public class CameraScript : MonoBehaviour
{

public Text scoreText;

bool isShift = false;

 

void Start()
{
scoreText.text = "始め!";
}

void Update()
{

scoreText.text = scoreText.text + getValue();
}

private string getValue()
{
// シフトキーを押した場合のロジック

isShift = Input.GetKey(KeyCode.LeftShift) || Input.GetKey(KeyCode.RightShift);
isShift = Input.GetKey(KeyCode.LeftShift) || Input.GetKey(KeyCode.RightShift);

if (isShift)
{
// 1st line
if (Input.GetKeyDown(KeyCode.Alpha1)) return "1";
if (Input.GetKeyDown(KeyCode.Alpha2)) return "2";
if (Input.GetKeyDown(KeyCode.Alpha3)) return "3";
if (Input.GetKeyDown(KeyCode.Alpha4)) return "4";
if (Input.GetKeyDown(KeyCode.Alpha5)) return "໌";
if (Input.GetKeyDown(KeyCode.Alpha6)) return "ຼ";
if (Input.GetKeyDown(KeyCode.Alpha7)) return "5";
if (Input.GetKeyDown(KeyCode.Alpha8)) return "6";
if (Input.GetKeyDown(KeyCode.Alpha9)) return "7";
if (Input.GetKeyDown(KeyCode.Alpha0)) return "8";
if (Input.GetKeyDown(KeyCode.Minus)) return "9";
if (Input.GetKeyDown(KeyCode.Equals)) return "ໍ່";
if (Input.GetKeyDown(KeyCode.Minus)) return "ຊ";

}

// シフトなし
// 1st line
if (Input.GetKeyDown(KeyCode.Alpha1)) return "ຢ";
if (Input.GetKeyDown(KeyCode.Alpha2)) return "ຟ";
if (Input.GetKeyDown(KeyCode.Alpha3)) return "ໂ";
if (Input.GetKeyDown(KeyCode.Alpha4)) return "ຖ";
if (Input.GetKeyDown(KeyCode.Alpha5)) return "ຸ";
if (Input.GetKeyDown(KeyCode.Alpha6)) return "ູ";
if (Input.GetKeyDown(KeyCode.Alpha7)) return "ຄ";
if (Input.GetKeyDown(KeyCode.Alpha8)) return "ຕ";
if (Input.GetKeyDown(KeyCode.Alpha9)) return "ຈ";
if (Input.GetKeyDown(KeyCode.Alpha0)) return "ຂ";
if (Input.GetKeyDown(KeyCode.Minus)) return "ຊ";
if (Input.GetKeyDown(KeyCode.Equals)) return "ໍ";

return "";

}
}

 

 

 期待したとおりに入力した結果が画面に反映されている。

 

画面の真ん中に、打った通りにサバイディーと動的に表示される。

f:id:name_untitled:20150830013132p:plain