问题描述
这已经让我很烦了一段时间,但找不到解决方案。只有ground3
移动,而其他2保持原位。我正在团结一致地进行2D项目。
代码:
using System.Collections.Generic;
using UnityEngine;
public class GroundMovement : MonoBehavIoUr
{
public float globalspeed;
public GameObject Ground1;
public float Ground1Speed;
Rigidbody2D rb1;
public GameObject Ground2;
public float Ground2Speed;
Rigidbody2D rb2;
public GameObject Ground3;
public float Ground3Speed;
Rigidbody2D rb3;
// Start is called before the first frame update
void Start()
{
rb1 = Ground1.GetComponent<Rigidbody2D>();
rb2 = Ground1.GetComponent<Rigidbody2D>();
rb3 = Ground1.GetComponent<Rigidbody2D>();
}
// Update is called once per frame
void Update()
{
rb1.veLocity = new Vector2(globalspeed + Ground1Speed,0);
rb2.veLocity = new Vector2(globalspeed + Ground2Speed,0);
rb3.veLocity = new Vector2(globalspeed + Ground3Speed,0);
}
}
解决方法
问题出在Start()
方法中,当您分配刚体时,您将它们全部分配给了Ground1
GameObject中的刚体,该方法应如下所示:
void Start()
{
rb1 = Ground1.GetComponent<Rigidbody2D>();
rb2 = Ground2.GetComponent<Rigidbody2D>();
rb3 = Ground3.GetComponent<Rigidbody2D>();
}