私はC#で動作させようとしています。Unityでは、私のキャラクターコントローラーを「偽って」浮動させようとしていますが、重力はオフになっていますが、まだ何かが下方向に引っ張っています(Y方向)
は、だから私の考えは3つの事が起こることを引き起こして、添付OnTriggerEnter機能を持っている私の水のオブジェクトをヒットする私のCharacterControllerためのものです:(TreadWaterに実行されているアイドル/ウォーキングから
- 私のアニメーションの変更を/正常に動作し、ちょうど)剛体(チャーコントローラ)が
void Update()
機能を使用して位置を設定しようとしました
CharacterController controller;
Animator Animator;
bool WaterImpact;
GameObject WaterProDaytime;
public Rigidbody Model;
void Start() {
Animator = GetComponent<Animator>();
Model = GetComponent<Rigidbody>();
Model.velocity = Vector3.zero;
Model.angularVelocity = Vector3.zero;
}
void OnTriggerEnter (Collider col) {
if (col.gameObject.name == "WaterProDaytime") {
WaterImpact = true;
//PlayerController.gravity = 0;
}
Debug.Log (col.gameObject.name);
Debug.Log (WaterImpact);
}
void Update() {
if (WaterImpact) {
transform.position = new Vector3 (transform.position.x, -1.4f, transform.position.z);
//Debug.Log (PlayerController.gravity);
//Debug.Log ("WaterHit");
}
}
、非常に急速に「ジッター」の文字を引き起こして反対の力があるように見えます。
理想的には、反対側の力をすべてオフにして、transform.position.y
を水の表面に固定することが理想的です。
は2日間これを見て、いかなる助けをいただければ幸いですけど、私に簡単に行くUnityへの非常に新しく、C#
乾杯
編集したスクリプト下さい。
を助けコントローラがエディタで変換文字のスクリーンショットを投稿してください。あなたの 'OnTriggerEnter'も機能しますか? 'Debug.Log'それを' if'ステートメントの外側に置いて、結果を教えてください。 – Programmer
OnTriggerEnterはうまく動作し、アニメーションセットの変更をトリガし、 'PlayerController.gravity = 0; 'を使用すると重力を' 0 'に変更します.' PlayerController'は重力が12と定義された別のスクリプトです@Programmer –
あなたの重力は12に戻りますか?それはただちに0と12の間を急速に切り替えるのではないのですか? –