Unity中,GameObject追随问题的一种解决办法。针对UGUI的2D情况。
贴出代码
using UnityEngine;
using System.Collections;
public class JellyMove : MonoBehaviour {
public Transform path;
public float speed;
void Start () {
}
// Update is called once per frame
void Update () {
}
void FixedUpdate()
{
transform.position = Vector3.MoveTowards(transform.position,path.position, speed * Time.deltaTime);
Rigidbody2D rigidBody= transform.GetComponent<Rigidbody2D>();
var lookPos = path.position - transform.position;
float x = Vector2.Angle(lookPos,Vector2.right);
float y = Vector2.Angle(lookPos, Vector2.up);
Vector2 moveVec = new Vector2(x,y);
if (lookPos.x < 0)
{
rigidBody.MoveRotation(y);
}else
{
rigidBody.MoveRotation(-y);
}
}
}
Secne场景如下
然后运行状态下,拖动被追随物体,就可以随便跑了,各个方向也是正确的