我是Unity的新手,所以这可能是一个愚蠢的问题,但我有几天试图解决这个问题。我有一个敌人从一个平台的一边走到另一边。我正在使用Raycasting检查下方是否有地面并转向其他方向。
我想要的是让敌人在平台上行走(就像银河战士中的敌人一样)。我将敌人的引力设置为0,所以它不会掉下来,但我不知道如何让它旋转并继续在平台上行走。我知道它可以通过光线投射完成,但我不知道如何做到这一点。
如果有人能帮助我解决我遗漏的代码,我将非常感激。提前谢谢!
public class BlobController : MonoBehaviour {
private Rigidbody2D myRigidBody;
public float moveSpeed;
public LayerMask groundMask;
float myWidth;
// Use this for initialization
void Start ()
{
myRigidBody = GetComponent<Rigidbody2D>();
myWidth = GetComponent<SpriteRenderer> ().bounds.extents.x;
}
// Update is called once per frame
void Update ()
{
}
void FixedUpdate()
{
//Check to see if there's ground in front before moving forward
Vector2 lineCasPos = transform.position - transform.right * myWidth;
Debug.DrawRay (lineCasPos, Vector2.down,Color.red);
bool isGrounded = Physics2D.Raycast (lineCasPos, Vector2.down, 2, groundMask);
//If there's no ground, turn around
if (!isGrounded)
{
Vector3 currRot = transform.eulerAngles;
currRot.y += 180;
transform.eulerAngles = currRot;
}
//Always move forward
Vector2 myVel = myRigidBody.velocity;
myVel.x = -transform.right.x * moveSpeed;
myRigidBody.velocity = myVel;
}
}