private GameObject tempObj;
//是否开始吸附
private bool isGo;
//吸附时间
private float myTime;
//y轴上的偏移量
private float yOffset;
//每次偏移的数值
public float accumulation = 1f;
//用于记录物体的名字,防止会出现多次累加的情况
public string targetName = "";
void Update()
{
//这个是实现短暂的吸附效果
if (isGo)
{
myTime += Time.deltaTime;
if (myTime > 1)
{
isGo = false;
myTime = 0;
}
tempObj.transform.position = new Vector3(transform.position.x, yOffset, transform.position.z);
}
}
private void OnTriggerEnter(Collider col)
{
tempObj = col.transform.gameObject;
targetName = tempObj.name;
yOffset = transform.position.y + accumulation;
accumulation += 1f;
isGo = true;
}
新建一个Cube并挂载脚本。新建Cube1,将其拖动直至碰到Cube。就会出现叠加的效果
PS:在Scene中拖动。有且只能有一个Cube挂载脚本,不然会出现诡异的情况。
|