Unity 实战案例全解析 实现时间停止效果+世界变灰
画面里运动的那个小玩意这么写
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Partol : MonoBehaviour
{
public Transform pos1;
public Transform pos2;
public float speed;
private Transform target;
void Start() {
target = pos2; // 初始目标位置
}
void Update() {
// 移动对象到目标位置
transform.position = Vector2.MoveTowards(transform.position, target.position, Time.deltaTime * speed);
// 检查是否接近目标位置
if (Vector2.Distance(transform.position, target.position) < 0.1f) {
// 切换目标位置
target = target == pos1 ? pos2 : pos1;
}
}
}
世界变灰用到了后处理包
相当于给 摄像机加了一层蒙版 灰色的蒙版
Getting started with post-processing | Post Processing | 3.0.3 (unity3d.com)
首先创建一个 后处理文件,选择为颜色处理,相当于 创建蒙版样式
之后给摄像机挂上后处理层组件,相当于 选择添加蒙版的目标
最后为一个场景上的空物体挂上后处理体积组件,是 调整多个蒙版之间的管理组件
时间停止和后处理代码控制
一个自锁变量用来使一个按钮切换两种不同的状态
time.scale用来暂停世界上的所有物品
public PostProcessVolume postProcessVolume;用来接受蒙版对象,这一步就是实例化蒙版
using UnityEngine;
using UnityEngine.Rendering.PostProcessing;
public class TimeStopEffect : MonoBehaviour {
public PostProcessVolume postProcessVolume;
private bool timeIsStopped = false;
private void Start() {
postProcessVolume.enabled = false;
}
public void ToggleTimeStop() {
if (!timeIsStopped) {
Time.timeScale = 0;
postProcessVolume.enabled = true;
timeIsStopped = true;
}
else {
Time.timeScale = 1;
postProcessVolume.enabled = false;
timeIsStopped = false;
}
}
}
如果想暂停一定范围内的物品动作可以这么做
仅作参考,因为还可能有动画,这个方法只会影响到有Mono的脚本的物品
using UnityEngine;
public class PauseTrigger : MonoBehaviour
{
private void OnTriggerEnter(Collider other)
{
if (other.CompareTag("Pauseable"))
{
PauseObject(other.gameObject);
}
}
private void OnTriggerExit(Collider other)
{
if (other.CompareTag("Pauseable"))
{
ResumeObject(other.gameObject);
}
}
private void PauseObject(GameObject obj)
{
// 停止物体的动作,例如禁用其Update方法
obj.GetComponent<MonoBehaviour>().enabled = false;
}
private void ResumeObject(GameObject obj)
{
// 恢复物体的动作
obj.GetComponent<MonoBehaviour>().enabled = true;
}
}
原文地址:https://blog.csdn.net/2301_77947509/article/details/142906763
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!