強火で進めスマートフォン用の表示で見る強火で進めこのブログではプログラム関連の記事を中心に書いてます。アウトドア関連の記事も書いてます。Unity3dFacebookの「Unityユーザー助け合い所」で「タッチした位置にオブジェクトを移動するにはどうすれば?」という質問が挙っていました。この処理って意外と難しい様な気がしたので自分でも作ってみる事にしました。質問ではタッチ(iPhoneやAndroid向け)の話でしたがテストがメンドクサイのでマウスの位置で実装しました。マウスの位置で指定している部分をタッチの場合にはタッチのデータに置き換えるだけでiPhoneやAndroidでも動作するかと思います。ソースコードはこちらで配布しています。今回のお題、背景に地面など何らかのオブジェクトが有る場合には簡単に作成出来ますが何も無い場合には意外と実装がメンドクサイのでは?と思いました。計算すればもちろんできるでしょうが折角Unity使っているのだし簡単にやりたい所です。言う事で今回はカメラの前にパネルを一枚引いてそのパネルとのHitテストで実装する事にしました。作成手順まずはPlaneを作成し、名前をHitPlaneにした後にカメラの正面に配置します。HitPlaneがカメラの視界を覆う様に充分な大きさにリサイズします。マウスの位置に移動したオブジェクトが見やすい様にHitPlaneのマテリアルに色を設定&半透明にします。マウスの位置でのHitチェック時にHitPlane以外のオブジェクトとHitしない様にHitPlaneは専用のlayerを設定します。JavaScriptファイルを作成し、以下の様なプログラムを記述します。参照を保存するプロパティを準備します。HitPlaneを設定、playerには移動させたい対象となるオブジェクトを設定して下さい。false;}スタート時にHitPlaneの描画は行わない様にします。描画だけ行わない状態です。当たり判定(collision)についてはそのまま有効で有るためちゃんとHitチェックが行えます。マウスの位置をスクリーンでの位置(3Dワールドでの位置)に変更します。マウスの位置でHitPlaneとHitした位置を求めています。HitPlaneに設定してあるlayerを指定しています。これは今回、HitPlaneに指定したlayerがユーザ定義Layerが8番目からだからです。8番目以外を使用した場合にはその番号に変更して下さい。player.transform.position.z);Hitチェックで求められた位置にオブジェクト(player)を移動さます。マウスの位置のX,Y座標に移動させ、Z座標については変更しない様にしています。使うという回答がついてました。使うだろうし、良しとしよう。実装したコードはこちら。使用出来るフォースのタイプは以下。h...2012-03-17Boo言語でUnityプログラムUnityで使える言語の紹介で存在が忘れられていたり、使ってる人...2011-07-22クリックしたオブジェクトの方を向く以下の様なイメージで構成。月別アーカイブはてなブログをはじめよう!nakamura001さんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。