私はAccelerometerMovement
という名前のスクリプトを持っています。このスクリプトは、プレーヤーの加速度計の制御を担当しています。プレイヤーはちょうど移動していると右私はちょうどInput.acceleration.x
コンポーネントを取っている。次のように加速度計停止アニメーション移動クエリ
スクリプトは、次のとおり
public class AccelerometerMovement : MonoBehaviour {
private bool isandroid;
private float AccelerometerStoreValue;
private robotController theRobo;
// Use this for initialization
void Start() {
theRobo = FindObjectOfType<robotController>();
#if UNITY_ANDROID
isandroid=true;
#else
isandroid=false;
#endif
}
// Update is called once per frame
void Update() {
if (isandroid) {
//android specific code
Accelerometer();
} else {
//any other platform specific code
}
}
void Accelerometer(){
AccelerometerStoreValue = Input.acceleration.x;
if (AccelerometerStoreValue > 0.1f) {
//right
theRobo.moveRight();
} else if (AccelerometerStoreValue < -0.1f) {
//left
theRobo.moveLeft();
}
}
}
uは左とright..itに従って上方に見ることができるように(moveLeft()とmoveRightを呼び出す)実際の別のスクリプトからプレーヤーのコントローラスクリプト。
実際の機能がある他のスクリプト:私は、実際のデバイス上のコントロールをチェックしたときに
// after Update()
public void jump(){
if (grounded) {
myRigidBody.velocity = new Vector2 (myRigidBody.velocity.x, jumpHeight);
doubleJump = false;
}
if(!doubleJump&&!grounded){
myRigidBody.velocity = new Vector2 (myRigidBody.velocity.x, jumpHeight);
doubleJump = true;
}
}
public void moveLeft(){
myRigidBody.velocity = new Vector2 (-moveSpeed, myRigidBody.velocity.y);
robotMove = true;
lastMove = myRigidBody.velocity.x;
anim.SetFloat ("MoveX", -moveSpeed);
anim.SetFloat ("LastMoveX", lastMove);
anim.SetBool ("RobotMoving", robotMove);
}
public void moveRight(){
myRigidBody.velocity = new Vector2 (moveSpeed, myRigidBody.velocity.y);
robotMove = true;
lastMove = myRigidBody.velocity.x;
anim.SetFloat ("MoveX", moveSpeed);
anim.SetFloat ("LastMoveX", lastMove);
anim.SetBool ("RobotMoving", robotMove);
}
public void stop(){
robotMove = false;
anim.SetBool ("RobotMoving", robotMove);
}
は今、コントロールが正常に動作しているが、1つの問題があります!
問題は、プレイヤーが移動開始のアニメーションを移動を開始するときには、それはアイドルアニメーションを停止したとき(またはアニメーションを停止)を開始していないことと、まだプレーヤーの動きのアニメーションは行くを続けている場合もあります。
今、私はこの問題を解決する方法を理解できません。
これはC#ではなくUnityscriptです。これをご理解ください。タグを正しく取得すれば、より多くの助けを得ることができます。あなたはGoogleのUnity C#対Unityscriptの違いを確認することができます。 – Programmer
私はそれを変更しました!しかし、あなたは解決策@プログラマーを知っていますか? – utkdub
実際にはコードを編集し、アイドルアニメーションを停止して再生するコードの部分を追加してください。 – Programmer