unityでuniSWFを使って2D Guiを作った時のメモ

unityでuniSWFを利用しようとして、
2D guiを作ろうとしたにサンプルを動かそうとして、少しはまったのでメモ。

unityでswfを利用する際に大きく2種類ある訳ですが、
1. 3D objectとして利用(3D空間に配置して、カメラ位置/向き等の影響を受ける)
2. 2D objectとして利用(2D空間に配置して、カメラの影響を受けない)
1の場合は普通に配置すればOKでビルボードの設定なども簡単にプロパティからできるので問題ないが、2がちょっと面倒だった。

2を実現するには、CameraのProjectionが「Orthographic」である必要があり、Main Cameが「Perspective」か「Orthographic」かでやり方が変わる。

Main Cameraが「Projection: Orthographic」の場合

1. Main Cameraに「Menu: Component」->「uniSWF」->「MovieClipOverlayCameraBehaviour」を追加
2. Script を以下のように書き、Main Cameraに追加し、実行する

#pragma strict

import pumpkin.events;
import pumpkin.display;
import MovieClipOverlayCameraBehaviour;

var stage:Stage;

function Start () {
    if( MovieClipOverlayCameraBehaviour.instance == null ) {
        return;
    }

    // assign stage reference
    stage = MovieClipOverlayCameraBehaviour.instance.stage;

    // create menu clip
    var btn:MovieClip =new MovieClip( "uniSWF/Examples/Tutorial 02 - Basic button script/swf/Tut02-ButtonAsset.swf:btn_ui" ) ;
    btn.x = 420;
    btn.y = 300;
    btn.gotoAndStop(1);
    btn.mouseChildrenEnabled = false;

    // event listeners
    btn.addEventListener( MouseEvent.CLICK, onButtonClick);
    btn.addEventListener( MouseEvent.MOUSE_ENTER, onButtonEnter);
    btn.addEventListener( MouseEvent.MOUSE_LEAVE, onButtonLeave);

    // add menu clip to stage
    stage.addChild(btn);
}
function onButtonClick(e:MouseEvent):void {
    print("Btn Clicked - Do Something Cool");
}

function onButtonEnter(e:MouseEvent):void {
    var m:MovieClip = e.currentTarget as MovieClip;
    m.gotoAndStop(2);
}

function onButtonLeave(e:MouseEvent):void {
    var m:MovieClip = e.currentTarget as MovieClip;
    m.gotoAndStop(1);
}

function Update () {
}

Main Cameraが「Projection: Perspective」の場合

1. Sub Cameraを作り、Projection: Orthographic を設定する。GUILayer, Flare Layer, Audio Listener は消してOK。
2.「MovieClipOverlayCameraBehaviour」を継承したクラスを作る。(以下)
3. 作成したScriptを Sub Cameraに追加し、実行する。

#pragma strict

import pumpkin.events;
import pumpkin.display;

public class uniswf_j1 extends MovieClipOverlayCameraBehaviour {
  function OnStart () {

    // create menu clip
    var btn:MovieClip =new MovieClip( "uniSWF/Examples/Tutorial 02 - Basic button script/swf/Tut02-ButtonAsset.swf:btn_ui" ) ;
    btn.x = 420;
    btn.y = 300;
    btn.gotoAndStop(1);
    btn.mouseChildrenEnabled = false;

     // event listeners
    btn.addEventListener( MouseEvent.CLICK, onButtonClick);
    btn.addEventListener( MouseEvent.MOUSE_ENTER, onButtonEnter);
    btn.addEventListener( MouseEvent.MOUSE_LEAVE, onButtonLeave);

     // add btn clip to stage
    stage.addChild(btn);
  }

  /* Button Actions */

  function onButtonClick(e:MouseEvent):void {
    print("MOUSE CLICK");
  }

  function onButtonEnter(e:MouseEvent):void {
    var m:MovieClip = e.currentTarget as MovieClip;
    m.gotoAndStop(2);
  }

  function onButtonLeave(e:MouseEvent):void {
    var m:MovieClip = e.currentTarget as MovieClip;
    m.gotoAndStop(1);
  }
}

なんか、unityのjavascriptで継承のやり方が分からなかったり、メソッド名が少し変わったり、面倒だったけど参考になれば。

word pressにコードなどを貼る

wordpressにコードを貼る機会が多いので、見やすい感じにできないかと調べてみたら、いい感じのプラグインがあった。

SyntaxHighlighter Evolved

上のリンクからDLするか、wordpressのプラグイン画面から検索すればOK。

あとは以下のような感じで書くだけ

[bash]
echo “hello syntax color”
[/bash]

これが↓↓↓な感じになる

echo "hello syntax color"

あと使えるsyntaxはここに書いてある

mac(lion) & macports でmysql5-develに失敗

最近 line + xcode4.2 の環境 mysqlをインストールする機会があって、
なんか失敗してはまったのでメモ的に残しておく。
環境はxcode4.2 + macports2.11

sudo port
install mysql5-devel +server

で失敗したので

install mysql5-devel +server  configure.compiler=llvm-gcc-4.2

をつけてみたら成功した。

foreverを使ってexpressを立ち上げる

express(というかnodejs)を使ったアプリは、開発中は node app.js で立ち上げているが、運用となるとdaemon化したいので簡単なforeverを試してみた。

install

expressとかを使っているならnpmが入っているはずなので package.jsonに

“forever”: “>= 0.9.0″

という感じで追加し、

npm install

で完了。

もしくは

npm install forever  -g

app.jsの監視開始

globalの場合は

forever start app.js

packageでinstallした場合は

node_modules/forever/bin/forever start app.js

監視中のapp一覧表示

node_modules/forever/bin/forever list

app.jsの監視停止

node_modules/forever/bin/forever stop app.js

全部の監視停止

node_modules/forever/bin/forever stopall

app.jsの再起動

node_modules/forever/bin/forever restart app.js

後は、node_modules/forever/bin/forever でヘルプを見るべし。
簡単ですなー。

 

expressを使ってみる

とりあえず公式ページに色々書いてあるので、http://expressjs.com/guide.html を見ると良いかと。

時間がない人向けに、手順だけ書いておく。

npm install express
express /tmp/foo && cd /tmp/foo
npm install -d
node app.js

ここまででOK

ブラウザで http://localhost:3000/ にアクセスして「welcome to express」とか表示されればOK、簡単ですね。

Unity 3.5系のMonoDevelop日本語化け対応

3.5系以上の場合は。

/Applications/Unity/MonoDevelop.app/Contents/Frameworks/Mono.framework/Versions/Current/etc/gtk-2.0/gtkrc

font = “Lucida Grande 14″

の下に

font_name =”Hiragino Kaku Gothic Pro 10″

を追加して再移動するとOK。

nvmを入れる

nodejsを使ってみようかなと思い、とりあえず入れてみたものの、nodejsのバージョンが色々あるので、nvmを入れてみる。

とりあえず、インストーラーで入れてしまったnodejsの削除から。

https://github.com/joyent/node.git

からnodeのソースを落としてきて

./configure
make
sudo make uninstall

でOK

でnvmのinstall

https://github.com/creationix/nvm を見れば書いてあるので、その通りにする。

git clone git://github.com/creationix/nvm.git ~/nvm
でnvmをdownloadしてきて、~/nvm/nvm.sh をすると、現在のターミナルで動くようになる。
常に反映されるようにするには、

source ~/nvm/nvm.sh

を ~/.bash_profileなどに書いておくとよい。

あとは、

nvm install v0.6.14
nvm use v0.6.14
で使えるようになる。

保護中: memo

この投稿はパスワードで保護されています。表示するにはパスワードを入力してください:

nodejsとかngcoreとかの事始め。

今回はmacbook airに入れたので、そのメモ。

nodejs は、http://nodejs.org からpkgをDownloadして、インストール。
インストール後は node –verion でバージョンが出ればOK。

ngcoreは、https://developer.mobage.com/ で開発者登録してから、https://developer.mobage.com/ja/resources/getting_started の通りにインストール。

nodejsもngcoreもmobageのページに書いてあるから、実は上の getting_startedページだけ見ればいいかも、と後で思った。

あとは、xcodeやandroidのインストールと設定。

androidは 、http://developer.android.com/sdk/index.html からsdkを落としてきて、PATHに <SDK>/tools と <SDK>/platform-tools を入れておくと幸せになれる。
その後は、android をコマンドラインで入力して、各SDKやらなにやらをupdate/installすればOK.

xcodeはapp sotreアプリで適当に探してインストール。

 

IRC proxyのZNCを試してみる

公式URL  http://wiki.znc.in/

インストールは簡単、ここ(http://wiki.znc.in/Installation)を見ながら入れるだけ。
CentOSの場合 rpmのサーバーが変わったので、

を参考にして対応。

その後、.znc/configs/znc.conf を修正して完了。

ちなみに、<User ****> だけ登録してあればチャンネルは無くてもいいっぽい。

irc上からコマンドで操作できる事の一覧はこちら (http://wiki.znc.in/Using_commands)

用途的にPCとかスマートフォンとか複数の端末からアクセスしたいと思うので、その場合は、znc.confの設定で

Buffer = 500
KeepBuffer = true

を設定しておくと幸せになれます。