中心座標をもとにそれぞれのオブジェクトを周回させたい
現在2Dのアニメーションをコードで作ろうとしています。
あるオブジェクトを中心としてその周りに例えば、リンゴを6個配置して周回させるというコードを書きました。
周回するのはいいのですが、すべて同じ位置から配置され、周回するというバグに直面しました。
C#
1コード 2 public float aroundX = 1; 3 public float aroundY = 1; 4 5 const float aroundDistanceX = 105; 6 const float aroundDistanceY = 105; 7 8 rect.anchoredPosition = new Vector2( 9 Mathf.Cos(aroundX * Time.timeSinceLevelLoad) * aroundDistanceX, 10 Mathf.Sin(aroundY * Time.timeSinceLevelLoad) * aroundDistanceY 11 );
UIの画像を周回させています。
ここから、個人の位置を特定して、その位置から周回させるというのを書いたのですが、そもそも中心座標がそれぞれで異なってしまうで、すべてが連動して周回する全く理想型でない形になります。
C#
1コード 2 private Vector2 initialPos; 3 public GameObject pivot; 4 private void Start() 5 { 6 rect = GetComponent<RectTransform>(); 7 Vector2 p = new Vector2(pivot.transform.position.x, pivot.transform.position.y); 8 initialPos = p - rect.anchoredPosition; 9 } 10 11 void Test() 12 { 13 rect.anchoredPosition = initialPos + new Vector2( 14 Mathf.Cos(aroundX * Time.timeSinceLevelLoad) * aroundDistanceX, 15 Mathf.Sin(aroundY * Time.timeSinceLevelLoad) * aroundDistanceY 16 ); 17 }
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/11/03 02:21
2020/11/03 02:35