前提・実現したいこと
この葉のような揺れて落ちるオブジェクトを作っています。
揺れるの部分は、transform.positionにTime.fixedDeltaTimeを使って一定間隔で動かしています。
アクションゲームでの往復して動く床のような動きです。
これにRgidbody2Dで落下を加えると加速していきます。
この加速の無くし方を教えてください。
該当のソースコード
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class MovingObject : MonoBehaviour
{
public float moveX = 0;
public float times = 0;
Vector3 defPos; float perDX; bool isReverse = false; // Start is called before the first frame update void Start() { defPos = transform.position; float timestep = Time.fixedDeltaTime; perDX = moveX / (1.0f / timestep * times); } private void FixedUpdate() { float x = transform.position.x; bool endX = false; if (isReverse) { if ((perDX >= 0.0f && x <= defPos.x) || (perDX < 0.0f && x >= defPos.x)) { endX = true; } transform.Translate(new Vector3(-perDX, 0, defPos.z)); } else { if ((perDX >= 0.0f && x >= defPos.x + moveX) || (perDX < 0.0f && x <= defPos.x + moveX)) { endX = true; } transform.Translate(new Vector3(perDX, 0, defPos.z)); } if (endX) { isReverse = !isReverse; } }
}
試したこと
velocity.normalizedを試してみましたが揺れが無くなってしまいました。
回答1件
あなたの回答
tips
プレビュー