- 我们经常需要使用相机跟随物体,之所以把两个放到一起,是因为有相同的技巧
- offset = currentObject.position - playerObject.position,然后实时的将角色位置加上偏移量,并插值赋予当前物体
- 首先是相机的代码, 一般来说,都要设置一个标志位,当游戏开始时,才开始·跟随移动
Vector3 offset = currentObject.position - playerObject.position
int speed =10; //用来调整插值速度
bool startFollw = false; //开始跟随
private void Follow()
{
Vector3 pos = playerObject.position + offset ;
camera.position = Vector3.Lerp(camera.position, pos, Time.deltaTime*speed )
}
Update()
{
if(startFollow)
{
Follow();
}
}
- 是鼠标拖拽的代码
- 实现拖拽,要实现UGUI的事件接口
/// <summary>
/// 只会执行一次
/// </summary>
/// <param name="eventData"></param>
public void OnBeginDrag(PointerEventData eventData)
{
//获取与鼠标的偏移量
Vector3 pos;
RectTransformUtility.ScreenPointToWorldPointInRectangle(myTransform, eventData.position, eventData.enterEventCamera, out pos);
offset = myTransform.position - pos;
}
//实现鼠标实时跟随
public void OnDrag(PointerEventData eventData)
{
Vector3 pos;
RectTransformUtility.ScreenPointToWorldPointInRectangle(myTransform, eventData.position, eventData.enterEventCamera, out pos);
myTransform.position = pos + offset;
}