2015年2月16日月曜日

【Unity】スワイプ、フリック操作を検出してみる。

こんばんは、naichilabです。
久々にUnityネタ。

スワイプ&フリックしたい

ちょっとしたミニゲームを作ろうとするとスワイプやフリックを使いたくなりますよね。
でもUnity標準では用意されてないみたい。
アセットストアを探しても有料しかなさそうなので作ってみました。

使い方

https://github.com/naichilab/Unity-TouchManager
ここのDownload ZIPからソースをダウンロード。
解凍すると「TouchManager.unitypackage」が入っているのでUnityプロジェクトにインポートしてください。

Prefabs/TouchManagerをシーンに置いたら準備完了。

フリックを受け取りたいスクリプトで下記コードを追加してください。
  void OnEnable ()
  {
    //イベントリスナをセット
    TouchManager.Instance.Swipe += OnSwipe;
    TouchManager.Instance.TouchStart += OnTouchStart;
    TouchManager.Instance.TouchEnd += OnTouchEnd;
    TouchManager.Instance.Flick += OnFlick;
  }

  void OnDisable ()
  {
    //イベントリスナを解除
    TouchManager.Instance.Swipe -= OnSwipe;
    TouchManager.Instance.TouchStart -= OnTouchStart;
    TouchManager.Instance.TouchEnd -= OnTouchEnd;
    TouchManager.Instance.Flick -= OnFlick;
  }

  void OnTouchStart (object sender, TouchEventArgs e)
  {
    //タッチ開始時に呼び出されます。
  }

  void OnTouchEnd (object sender, TouchEventArgs e)
  {
    //タッチ終了時に呼び出されます。
  }

  void OnSwipe (object sender, SwipeEventArgs e)
  {
    //スワイプ中に呼び出されます。
  }

  void OnFlick (object sender, FlickEventArgs e)
  {
    //フリック検出時に呼び出されます。
  }
引数としてタッチ場所やフリック量が渡されるので好きに加工して使ってください。

デモ


Hosted by UnityRoom.com

まとめ

ソースコードはものすごい微妙な感じ…。
Android,iOS,WebPlayer全てで動作するのは確認できていますが
値がPixel数で出てくるっぽいので端末サイズが違うと
フリック感覚にばらつきがありそうです。

端末サイズの違いを吸収する方法ご存知の方は是非教えてください。 

綺麗にまとまったらAssetStoreに申請してみたいなー。

2015年2月13日金曜日

【PowerShell】テキストファイルの内容を正規表現で置換する


やりたいこと

JenkinsでC#コードを自動ビルドするときにバージョンを書き換えたかった。
AssemblyInfo.csを修正すればいいことは知ってたのでPowerShellでやってみた。
正規表現も使えるしちょー楽。

元ファイル(一部)

[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]

PowerShellスクリプト

#ファイル読み込み
$filePath = "AssemblyInfo.cs"
Get-Content $filepath | tee -Variable fileContent

#正規表現で置換&保存
$input = '(Assembly.*Version\()\".*\"(\))'
$replacement = '$1"1.2.3.4"$2'
$fileContent -replace $input, $replacement | tee -FilePath $filepath

結果ファイル(一部)

[assembly: AssemblyVersion("1.2.3.4")]
[assembly: AssemblyFileVersion("1.2.3.4")]

2015年2月4日水曜日

【Mac】MineCraftの自宅サーバー公開した人のところに繋いでみた。

はじめに

こんなつぶやきを見てMineCraftやってみたくなったので買ってみた。
MineCraftの自宅サーバー公開したとかなんとか。
ちなみに自分はMineCraftやったことないです。初クラフト。誰か一緒にやりましょう。
でもMacで動かそうとしたらエラーしたので解決までをメモ予定。

環境

・MacBookAir2013
・Mac OSX 10.9.5

単体(MODなし)起動まで

ダウンロード

ここから。
https://minecraft.net/

エラー

落ちてきたMinecraft.appを起動するもすぐエラー。
Bootstrap (v5)
Current time is Feb 4, 2015 12:10:55 AM
System.getProperty('os.name') == 'Mac OS X'
System.getProperty('os.version') == '10.9.5'
System.getProperty('os.arch') == 'x86_64'
System.getProperty('java.version') == '1.6.0_65'
System.getProperty('java.vendor') == 'Apple Inc.'
System.getProperty('sun.arch.data.model') == '64'

Downloading: https://s3.amazonaws.com/Minecraft.Download/launcher/launcher.pack.lzma
Exception: javax.net.ssl.SSLException: java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
Downloading: https://s3.amazonaws.com/Minecraft.Download/launcher/launcher.pack.lzma (try 2/10)
Exception: javax.net.ssl.SSLException: java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
Downloading: https://s3.amazonaws.com/Minecraft.Download/launcher/launcher.pack.lzma (try 3/10)
...
...
Unable to download remote file. Check your internet connection/proxy settings.
FATAL ERROR: net.minecraft.bootstrap.FatalBootstrapError: Unable to download while being forced
 at net.minecraft.bootstrap.Bootstrap.execute(Bootstrap.java:95)
 at net.minecraft.bootstrap.Bootstrap.main(Bootstrap.java:381)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
 at java.lang.reflect.Method.invoke(Method.java:597)
 at apple.launcher.LaunchRunner.run(LaunchRunner.java:116)
 at apple.launcher.LaunchRunner.callMain(LaunchRunner.java:51)
 at apple.launcher.JavaApplicationLauncher.launch(JavaApplicationLauncher.java:52)


Please fix the error and restart.
なんでやのん。
やりたいけど眠いしまた今度。
土日にでも調べるか…

ぐぐる

こんなの見つけた。
Java7消してJava6入れたら良いよって。

$ java -version
java version "1.7.0_55"
Java(TM) SE Runtime Environment (build 1.7.0_55-b13)
Java HotSpot(TM) 64-Bit Server VM (build 24.55-b03, mixed mode)
現在のバージョンはJava7だった。
きっとAndroid環境構築してたときに入れたんだなー。

消す

消そうと思ったけどJavaの消し方すら分からんかった。
Java 7をOS Xから完全にアンインストールする
ほんとどこに何が入ってるかわからんくて気持ち悪いなぁ…
分からず入れた自分が悪いんだけど。

まぁこの際すっきり消しちゃおうってことで上記URL通りにやってたんだけど
com.oracleで検索しても出てこない。
システムファイル検索とかオプション見当たらないなーと思ったら+ボタンで設定できた。

Java6入れる

Java6 ここから。

起動した〜

とりあえずアプリ単体では起動した。
あとはMODっての入れる必要があるらしいからまた明日かな。

MOD導入して起動まで

加賀瀬さんのブログに全部書いてある。
MINECRAFTサーバー始めました
  1. Edit Profileで1.6.4を選択
  2. 一度起動して閉じておく
  3. Minecraft Forge 1.6.4-9.11.1.965をDLして実行
  4. 実行できない場合、システム環境設定→セキュリティとプライバシーからこのまま開くを実行。
  5. Install Clientを選択してインストールする。
  6. もう一度Minecraft起動してEditProfileへ
  7. 起動バージョンをインストールしたForge1.6.4
  8. フォルダも実フォルダを探して合わせる
  9. https://t.co/W3mp8Vbffj ここからMOD詰め合わせをダウンロード
  10. 回答して出てきた3フォルダをForgeのインストールフォルダにコピー
  11. コピーしたフォルダの中のmods/IntelliInput-2.2-for164.jar を削除
    (Macだと落ちるらしい)
  12. 起動!
  13. Add Serverでサーバー追加
    aokaga.dip.jp:30000
  14. 接続できたっぽい。

さー、それで何するんだこのゲーム。

あとこのアドレスでゲーム起動しなくてもサーバーの状態みれるらしい。おもろい。
http://aokaga.dip.jp:8123/

Related Posts Plugin for WordPress, Blogger...