代码工作正常。父流程正在发生,平台正在想要移动。
如果平台向上移动并且玩家在这个平台上跳跃,它看起来像玩家太重或跳跃力量弱。就像没有平台速度一样。怎么能使它适应物理定律?
public Transform[] pos;
public Transform currentPos;
public float speed;
public int nextPoint;
public GameObject platform;
void Start () {
currentPos = pos [nextPoint];
}
void FixedUpdate () {
platform.transform.position = Vector3.MoveTowards (platform.transform.position, currentPos.position, speed);
if (platform.transform.position == currentPos.position) {
nextPoint++;
if (nextPoint == pos.Length)
nextPoint = 0;
currentPos = pos [nextPoint];
}
}
void OnTriggerEnter2D(Collider2D col){
if (col.transform.tag == "Player")
col.transform.parent.parent = platform.transform;
}
void OnTriggerExit2D(Collider2D col){
if (col.transform.tag == "Player")
col.transform.parent.parent = null;
}
答案 0 :(得分:0)
我怀疑你也是通过操纵变换来移动你的玩家。
通过将其更改为使用rigidbody.addforce https://docs.unity3d.com/ScriptReference/Rigidbody.AddForce.html,可以获得所需的效果。
或者你可以通过将平台的速度添加到你的玩家跳跃功能来增加你的跳跃力。