我正在制作一個水果出現在螢屏上的游戲(此時它們從螢屏底部飛入并向上移動然后從螢屏上掉下來),你必須粉碎水果才能獲得積分。
我試圖弄清楚如何以不同的角度添加一個力,以便水果飛到螢屏上的不同位置,而不是只在中間向上然后向下。
這就是我給水果增加力量的方式:
foodItemRigidBody.AddForce(transform.up * force);
我的產卵位置在螢屏底部的中間,所有水果都在那里產卵并添加了一個力,因此它們會直線上升和下降。
我怎么做才能讓它們在中間產卵并向上飛,有些稍微向右飛,有些向左飛?
uj5u.com熱心網友回復:
假設是 2D,我會嘗試將您的向上方向隨機化到兩側:
Vector3 upDirSlightlyRandomized = (transform.up transform.right new Vector3(Random.Range(-0.5f, 0.5f), 0, 0).normalized;
foodItemRigidBody.AddForce(upDirSlightlyRandomized * force);
相同但更直接的可能:
Vector3 upDirSlightlyRandomized = new Vector3(Random.Range(-0.5f, 0.5f), 1, 0)).normalized;
我會玩 -0.5f 范圍,直到達到預期。對于 3D,我也會嘗試隨機化 z。
uj5u.com熱心網友回復:
制作3個物體。
LeftBorder
RightBorder
Target
讓 Target 在 x 軸上移動到 LeftBorder 和 RightBorder 之間的隨機位置,但在每次發射水果之間保持其自己的 y 軸和 z 軸。
然后,您的生成點應該使用 Transform.LookAt 向目標旋轉。
https://docs.unity3d.com/ScriptReference/Transform.LookAt.html
這樣,您的生成點每次都會向隨機目標位置旋轉。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/419085.html
標籤:
上一篇:世界到立方體投影Unity
下一篇:如何使型別別安全
