##Unity5でRayを使ってクリック位置にボールを生成したい
Unity5入門(SB creative)の書籍のChapter6内の
””Rayを使ってクリック位置にボールを飛ばす”” に関して質問です。
書籍の手順の通り進めていましたが、
再生してマウスクリックを押しても
Game Display1上には、
Materialがついたボールが上手く生成されません。
Main Cameraを選択した状態で再生しています。
クリックをするとScene上には巨大なフレーム状の球が反映されており、
shade状の球は反映されていません。
prefabを用いたBall(Clone)は
Main cameraの子の中に反映されているみたいで
クリックを押すたびに増えていきますが、
shade状の姿は見えません。
エラーメッセージも特にないのですが、原因はなにが考えれるでしょうか。
Unity5もコードも初心者です。稚拙なご質問かもしれませんが、
ご教授頂けたら幸いでございます。
何卒宜しくお願いいたします。
<作成手順>
・Main cameraにJSコンポーネントを追加
・Java scriptをMonoDevelopで記述
・Hierarchy上にBall(Sphere←Aとする)を作成し位置を調整(X0,Y0,Z0)
・Project上にMaterialを追加
・MaterialをHierarchy上のBall(A)に割り当て
・Ball(A)にRigidbodyを追加
・Ball(A)をプレハブ化(←Bとする)
・Main cameraのScript内のパラメータ(Prefab)にプレハブ化したBall Bを指定
・同Main cameraのScript内のパラメータ(Power)を50に設定
・再生ボタンを実行
となります。ご不明点ございますでしょうか。
###エラーメッセージは出ていません。
コードもprefabもpowerの値も書籍の通り進めております。
###該当のソースコード(冒頭の#は当サイトの都合上全角を使用しておりますが本来は半角でスペース等も書籍の通り書いております)
#pragma strict
public var prefab : GameObject;
public var power : float;
function Update(){
if(Input.GetMouseButtonDown(0)) { var bullet = LoadBullet(); var ray : Ray = Camera.main.ScreenPointToRay(Input.mousePosition); var dir : Vector3 = ray.direction.normalized; bullet.GetComponent.<Rigidbody>().velocity = dir * power; }
}
function LoadBullet() : GameObject{
var bullet = GameObject.Instantiate(prefab)as GameObject;
bullet.transform.parent = transform;
bullet.transform.localPosition = Vector3.zero;
return bullet;
}
###試したこと
書籍に記載されている通りのコードを書き、
手順も本書のまま進めており、調べても原因が良くわかりません。
PC/Unity共に再起動しても変化はありません。
最初から作り直しても同じ状態になります。
###補足情報(Version/OS等)
<Unity Version 5.4.1f1 personal>
<Unity Javascript>
<MonoDevelop>
<Mac OS Sierra Ver 10.12>
<MacBook Pro (Retina, 13-inch, Mid 2014)>
<Processor 3 GHz Intel Core i7>
<Memory 16 GB 1600 MHz DDR3>
<Graphics Intel Iris 1536 MB>
<Macintosh HD 500GB>
回答2件
あなたの回答
tips
プレビュー