Unity2D-追随物体位置时遇到的问题

起因是想在Player下装个装饰物,如图

直接把Player当父物体缩放会有问题,所以写了个脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class FollowPlayer : MonoBehaviour
{
Vector3 v;//与Player位置的偏差值
public Transform P;//Player位置
void Awake()
{
v=transform.position-P.transform.position;//偏差值:初始坐标-Player初始坐标
}
void Update()
{
transform.position=Player.Instance.transform.position+v;//计算当前坐标
}
}

一运行,物体不见了!
一看,Scene视图里还好好的
Debug了一下偏差值发现了原因
v在两个向量相减时,z轴也会发生改变
z!=0时,物体不能从2D显示,这就是game视图看不见,scene视图却能看见的原因
于是

1
2
3
4
5
void Awake()
{
v=transform.position-P.transform.position;//偏差值:初始坐标-Player初始坐标
v.z=0;
}

成功解决