お知らせと画力修行用に開設しました。よろしくお願いします!
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だったのでもしかした間違えてるかもしれない。
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"){//当り判定を名前で取る
}
}
■トリガーでもほぼ同じ、トリガーにチェックを忘れずに。
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 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);
}
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);
}