Unity 程序运行一段时间后Game界面出现黑屏的一种情况

经过排查,发现是Camera(相机)的Z轴一直变大导致的黑屏。

造成这种情况的原因是代码:

VMouseTransform.position= Camera.main.ScreenToWorldPoint(Input.mousePosition);

Camera(相机)设置成为跟随VMouseTransform。所以会出现Z轴逐渐变大的情况,最后导致黑屏。

改代码为:

Vector2 vMouseNeed = Camera.main.ScreenToWorldPoint(Input.mousePosition);
VMouseTransform.position = vMouseNeed;//用一个中间变量Vector2,防止Z变换。

用一个Vector2就防止了Z轴数值的变化,从而保证Z轴不会逐渐增加,引发黑屏。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是用Unity实现物体移动后轨迹逐渐显示的程序: 1. 首先,在Unity中创建一个空物体,例如命名为"TrailRendererObject" 2. 挂载Trail Renderer组件,该组件可以在物体移动后生成轨迹线 3. 创建一个脚本,在脚本中定义一个List<Vector3>类型的变量,用于存储物体的移动轨迹 4. 在脚本中,通过Transform组件获取物体的位置,并把该位置存储到List<Vector3>中 5. 在Update方法中,调用TrailRenderer组件的方法,设置Trail Renderer的位置为List<Vector3>中已存储的位置 6. 最后,在脚本中定义一个变量,用于控制轨迹的显示速度,例如float类型的delayTime变量,设置该变量的值可以调整轨迹线的显示速度 以下是代码示例: using System.Collections.Generic; using UnityEngine; public class TrailRendererController : MonoBehaviour { private TrailRenderer trailRenderer; private List<Vector3> positions = new List<Vector3>(); private float delayTime = 0.05f; private float timer = 0.0f; void Start() { trailRenderer = GetComponent<TrailRenderer>(); trailRenderer.enabled = false; } void Update() { timer += Time.deltaTime; if (timer >= delayTime) { positions.Add(transform.position); timer = 0.0f; } trailRenderer.enabled = true; trailRenderer.positionCount = positions.Count; trailRenderer.SetPositions(positions.ToArray()); } } 在运行该程序时,只需要将该脚本挂载到要移动的物体上即可。每次运行时,物体移动的轨迹线会逐渐显示出来。如果要调整轨迹线的显示速度,只需要修改delayTime变量的值即可。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值