忍者ブログ
お知らせと画力修行用に開設しました。よろしくお願いします!
[1]  [2]  [3
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。


transform.forward … Z軸方向(前方)の単位ベクトル
transform.right … X軸方向(右方)の単位ベクトル
transform.up … y軸方向(上方)の単位ベクトル(???)
ForceMode.VelocityChange … 力のモードが「質量無視して速度変化を加える」
ForceMode.Force:質量を考慮して継続的力を与える
ForceMode.Acceleration:質量を無視して継続的力を与える
ForceMode.Impulse:質量を考慮して衝撃力を与える
rigidbody.AddForce … 物体に与える力

■transform.forwardはキャラクターを動かすときに使う、バックするときは、マイナスを入れる。
 transform.right とかも逆に入れるときはマイナス。逆の関数は無いみたい。 

拍手

PR
var posx = this.transform.position.x-target.transform.position.x;
var posy = this.transform.position.z-target.transform.position.z;

var niten : float;
var kakudo : float;
var kakudo2 : float;

niten=Mathf.Sqrt((posx*posx)+(posy*posy));//二点の距離を求める
kakudo = Mathf.Atan2(posx, posy); // xとyの順に注意!
kakudo2 = kakudo * Mathf.Rad2Deg;//ラジアンから角度に変換

自分と相手の距離や角度を調べる為に三角関数を使ったサンプル。
これを使えば二点の距離が分かると思う。

実は単純に座標に三角関数を当てはめただけ、Mathf.Sqrt()がルートでMathf.Atan2が
アークタンジェントだと思う。Mathf.Atan2()は角度が分かるはず。

なんせ、中学の時は数学は1だったのでもしかした間違えてるかもしれない。

拍手

function OnCollisionEnter(info : Collision) {
if (info.gameObject.tag == "test"){//当り判定を名前で取る

var hensuu=this.transform.localEulerAngles.y;//角度代入
var hensuu2=info.transform.position.z;//Z座標代入
}
}

■タグで当り判定を取る,thisで自分の情報、infoで相手の情報をとれるので、色々使えると思う。

function OnTriggerEnter(other : Collider) {
if (other.gameObject.tag == "test"){//当り判定を名前で取る
}
}

■トリガーでもほぼ同じ、トリガーにチェックを忘れずに。

拍手

var playtarget : Transform;//プレイヤー座標

function Update () {

var pos = playtarget.transform.position.z;//原点を代入
var pos2 = playtarget.transform.localEulerAngles.y;//角度代入
}

■ドットでプロパティにアクセスする。座標や角度をとる時に便利

拍手

var speed = 0.5;
public var target : Transform;

function Update () {
var relativePos = target.position - transform.position;
var rotation = Quaternion.LookRotation(relativePos);
transform.rotation =
Quaternion.Slerp (transform.rotation, rotation, Time.deltaTime * speed);
}

//targetに任意のオブジェクトを割り当てるとその方向を向くようになる。

■このスクリプトでオブジェクトのほうを向くがどの軸でも向いてしまうので、y軸だけ向かせたい
時は違う書き方をする。

public var target : Transform;

function Update () {

var relativePos = target.position - transform.position;
relativePos.y=0;
if (Vector3.Dot(relativePos,relativePos) < 1) { return; } // EPSILONはx,zの差が非常に小さいときにQuaternionが破綻しないような値

var rotation = Quaternion.LookRotation(relativePos);
transform.rotation =Quaternion.Slerp (transform.rotation, rotation, Time.deltaTime * 0.5);


}

拍手



カレンダー
02 2024/03 04
S M T W T F S
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
プロフィール
マッチーウェブサイト(本家)本家のサイトです。こちらもよろしくお願いします。

ハンドルネーム:machiee(マッチー)

3DCG作ってます。

リンクはもちろんフリーです!
最新コメント
バーコード
ブログ内検索
最古記事
P R
Template by Crow's nest 忍者ブログ [PR]