我在同一个场景中有两个圆圈,我需要其中一个重复与其他地方相同的动作。只保持与另一个的大小的距离。
考虑圈子" A"并圈出" B",我存储圆坐标" A"在一系列的位置上,然后是圆圈" B"读取这些位置并执行。
使用这种方法,我在增加速度圈时遇到问题" A&#34 ;,因为圆圈" B"仍在读取数组之前存储的速度,使圆圈分开。
查看图片:
理想情况下,圆圈" B"以圆圈的当前速度运行" A"但是永远不可能从已经以圆圈速度记录的阵列中读取" A"那个时候。
var dir = Input.mousePosition - Camera.main.WorldToScreenPoint(transform.position);
var angle = Mathf.Atan2(dir.y, dir.x) * Mathf.Rad2Deg;
transform.rotation = Quaternion.RotateTowards(transform.rotation, Quaternion.AngleAxis(angle, Vector3.forward), 180 * Time.deltaTime);
transform.position += transform.right * Time.deltaTime * velocity;
Camera.main.transform.position = new Vector3(transform.position.x, transform.position.y, Camera.main.transform.position.z);
recordList.Insert(0, new Recorder
{
Position = transform.position,
Rotation = transform.rotation,
Velocity = velocity
});
制作此方案的最佳方法是什么?
我提前感谢任何帮助!
答案 0 :(得分:0)
我认为你需要的是使用来自" A"的位置数组。创建一个对象" B"可以解释为基于固定距离计算其位置,而不是在固定时间内。
因此" A"路径中的物体会创建一组航路点,如A1,A2,A3,A4 ....
B对象必须在持续航点之间添加距离,直到等于或大于等于"距离比固定距离A - 的距离小。乙