前提・実現したいこと
Unityで2Dのゲームを作成しています。Unity初心者です。
ボールが1回転するたびにボールの大きさを大きくする機能を実装しているところで、ボールが1回転するという条件を立てるところで躓いてしまいました。
言語はC#です。
発生している問題・エラーメッセージ
現在書いているコードでは、一定の距離を進むと1フレームごとにボールが大きくなってしまい、実装したい挙動のようにはなりませんでした。
該当のソースコード
C#
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class SnowBallController : MonoBehaviour
{
float PushForce = 500f;
Rigidbody2D player;
float Posz;//ボールの回転度数
// Start is called before the first frame update
void Start()
{
player = GetComponent<Rigidbody2D>();
Posz = transform.rotation.z;
}
// Update is called once per frame void Update() { if (transform.position.x > 21.399)// { if (player.velocity.x > 0) { player.AddForce(Vector2.left * 1f);//ボールが減速する } else { player.velocity = Vector2.zero;//ボールが停止する } } if (transform.position.x > 2.5) { if (player.velocity.x > 0) { if ( Posz % -180 >= 0f)//今回質問したい条件式、「ボールが一回転するごとに」という条件にしたい { transform.localScale *= 1.01f; } } } if (Input.GetMouseButtonDown(0)) { player.AddForce(Vector2.right * PushForce); } }
###試したこと
同様の条件式を立てた人がいないかインターネットで探しましたが見つかりませんでした。
補足情報(FW/ツールのバージョンなど)
Visual Studio for Mac Community バージョン7.7.3
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/02/27 04:22