プレイヤーに複数のスクリプトを持たせることが可能。??複雑にすると問題がでてきそうだが、今のところうまくいっている。ちなみに、https://gist.github.com/tracend/893555やろうとしたことは、プレイヤーに弾を撃たせるスクリプト C#でなかったので、
var prefabBullet: Transform;var shootForce: float ="100";function Update () {if(Input.GetButtonDown("Shoot") ){var instancebullet =Instantiate( prefabBullet ,transform.position,Quaternion.identity);instancebullet.rigidbody.AddForce(transform.forward * shootForce);}}
■説明
Var ← 「今から新しい変数を定義するよ」という宣言public var としてもうまく動いたんだけど、つけなくもていいみたい。
http://docs.unity3d.com/ScriptReference/Rigidbody.AddForce.htmlhttp://is4cafe.hatenablog.com/entry/20140306/1394036396
.rigidbody.AddForce
これについてまとめてある。
ちなみに AddForce は物体に力を加える。とのことらしいです。
shootForceを宣言しているからそれが使われているみたいだが、
反応がない。
理由は
弾のほうに 違うスクリプトをつけていたからみたです。
using UnityEngine;
public class Bullet : MonoBehaviour
{
public int speed = 10;
void Start ()
{
rigidbody2D.velocity = transform.up.normalized * speed;
}
}
ちなみに弾の方はC#とややこしや。
色々とわかりました。
まずね。
#pragma strict
var bullet: GameObject;
var player: Transform;
var shootForce: float = 100;
var obj: GameObject;
function Update () {
if(Input.GetButtonDown("Fire1") )
{
obj = bullet.Instantiate( bullet );
obj.transform.position = player.position;
obj.rigidbody2D.velocity = transform.up.normalized * shootForce;
}
}
最終的にこれになったんだけど。
考え方としては、弾のインスタンスを生成する。
そいつを機体の位置とおなじにする。
その弾に力を加える。
という流れ。
https://gist.github.com/tracend/893555
こいつとの違いは、
↑ファンクションの中で変数を宣言している。
var instancebullet =Instantiate( prefabBullet ,transform.position,Quaternion.identity);
こんな感じで。
インスタンスした弾に対して命令しないと意味がないからかな。
#pragma strict
var bullet: GameObject;
var player: Transform;
var shootForce: float = 100;
function Update () {
if(Input.GetButtonDown("Fire1") )
{
bullet.transform.position = player.position;
bullet.rigidbody2D.velocity = transform.up.normalized * shootForce;
}
}
こんな感じにするとエラーはでないけど。
弾はでないw
つまり、インスタンスを生成は重要だということだ。
http://qiita.com/2dgames_jp/items/8a28fd9cf625681faf87であとは、そいつをいじりたおしていく。
感じです。
間違っていたのは、
rigibody.Addforce をやっていたので。うまく弾とエラーがでてた。
そりゃそーだ。3Dだしw
あとはプログラムの記述の仕方として、
if 文と それから下のアクションは
別にしたほうがいいのかな?
弾のその後とか、制限とかもかんがえられますね。
パワーがなくなってでなくなるとか。
そういうのはまた、今度かな。
0 件のコメント:
コメントを投稿