【3Dゲームエンジン】Unity質問スレッド17 [転載禁止]©5ch.net
レス数が950を超えています。1000を超えると書き込みができなくなります。
0959名前は開発中のものです。
2015/06/12(金) 17:24:51.57ID:yT7Nup/Qキャラを追いかけるカメラはこんな感じの処理です。
もしかしてSlerpってすごい重いのですか?
キャラはまっすぐ進ませてるはずなのに横にガクガク動いて見えるんですよねぇ
public float distance = 5.0f;//被写体との距離
public float height = 3.0f;//被写体との高さ
void freeCamera(){
//start freeCamera
// Transform target = GameObject.FindWithTag("Player").transform;//被写体
// float distance = 5.0f;//被写体との距離
// float height = 3.0f;//被写体との高さ
// float heightDamping = 2.0f;//大きくするとカメラがはやくついてくる
// float rotationDamping = 3.0f;//大きくするとカメラがはやくついてくる
float smoothTime = 5f;
if (!target)return;//ターゲットがいないときはなにもしない
Vector3 basePosition = target.position;
basePosition -=target.forward*distance;
basePosition +=target.up*height;
// transform.position = Vector3.Slerp(transform.position,basePosition,smoothTime * Time.deltaTime);
transform.position = Vector3.Lerp(transform.position,basePosition,smoothTime*Time.deltaTime);
// transform.position = Vector3.Lerp(transform.position,basePosition,smoothTime*Time.deltaTime);
//Vector3 targetVelocity = target.GetComponent<Rigidbody> ().velocity;
//Vector3 targetVelocity = target.transform.forward;
Quaternion wantedRotation = Quaternion.LookRotation(target.position-transform.position);
// transform.rotation = Quaternion.Slerp(transform.rotation,wantedRotation,smoothTime*Time.deltaTime);
transform.rotation = Quaternion.Lerp(transform.rotation,wantedRotation,smoothTime*Time.deltaTime);
//end freeCamera
}
レス数が950を超えています。1000を超えると書き込みができなくなります。