zoukankan      html  css  js  c++  java
  • Unity 特写镜头

    using UnityEngine;
    
    public class Camera_Feature : MonoBehaviour
    {
        public static Camera_Feature instance;
    
        public Vector3 offset;
        public float time_show;
    
        private Transform m_target;
        private Transform m_camera;
        private Vector3 m_position;
        private Vector3 m_destination;
    
        private float m_timer;
        private float speed;
    
        private bool _action;
        private bool action
        {
            get
            {
                return _action;
            }
            set
            {
                _action = value;
    
                if (_action)
                {
                    Time.timeScale = 0.2f;
                }
                else
                {
                    Time.timeScale = 1f;
                }
    
                gameObject.SetActive(action);
            }
        }
    
        private void Awake()
        {
            instance = this;
    
            m_camera = transform;
            m_position = transform.position;
    
            action = false;
        }
    
        private void Update()
        {
            if (action)
            {
                if (Vector3.Distance(m_camera.position, m_destination) < 0.1f)
                {
                    m_camera.position = m_destination;
                    m_timer += Time.deltaTime;
    
                    if (m_timer > time_show * Time.timeScale)
                    {
                        Finish();
                    }
                }
                else
                {
                    m_camera.LookAt(m_target);
                    m_camera.position = Vector3.Lerp(m_camera.position, m_destination, speed * Time.deltaTime);
                }
            }
        }
    
        public void StartUp(Transform target, float time = 6)
        {
            m_timer = 0;
            m_target = target;
            m_destination = m_target.position + offset;
            speed = Vector3.Distance(m_position, m_destination) / time;
    
            action = true;
        }
    
        private void Finish()
        {
            action = false;
    
            m_camera.position = m_position;
        }
    }
    View Code

    实现摄像机镜头对指定物体进行特写

  • 相关阅读:
    Prometheus 基于文件的服务发现
    Prometheus 标签使用示例整合
    Prometheus 重新标签
    Prometheus 配置采集目标
    Prometheus 配置文件详解
    Prometheus 安装部署
    Prometheus 介绍详解
    Python urlib 模块
    ArcGIS Python编程案例-电子资料链接
    如何查看Python对象的属性
  • 原文地址:https://www.cnblogs.com/Joke-crazy/p/10530570.html
Copyright © 2011-2022 走看看