在2D游戏中,我使用下面的脚本将UI图像夹在玩家身上,但是当玩家移动时,图像会有一点抖动。我到底做错了什么?
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class HealthBarClamp : MonoBehaviour
{
public Transform targetToFollow;
Transform thisTransform;
void Start()
{
thisTransform = transform;
}
void Update()
{
thisTransform.position = new Vector3(targetToFollow.position.x,
targetToFollow.position.y + 1.5f, thisTransform.position.z);
}
}
你可以尝试在gameObject的层次结构中让健康栏成为目标的子代,这样它就会跟着移动,不需要在脚本中更新它的位置。然后你可以根据你的需要启用或禁用健康条,如果你需要它被看到或不需要。
如果你在使用物理学或在 FixedUpdate
然后,你需要移动相机在周围的 FixedUpdate
以及。Update
每一帧都会发生,无论快慢,而 FixedUpdate
是 模拟 以一致的时间间隔发生,以帮助保持物理计算不至于发疯。如果你移动摄像机在 Update
和目标在 FixedUpdate
,那么你最终会有微小的差异,看起来像摇晃。
(或者你也可以按照评论中给出的建议来做)。把UI元素变成移动对象的子元素是完全可行的,尽管我个人更喜欢用你原来的方式来做,因为这样可以让 "平滑 "的相机移动等事情变得更容易。)