56 lines
1.5 KiB
C#
56 lines
1.5 KiB
C#
using UnityEngine;
|
|
using UnityEngine.Rendering;
|
|
using UnityEngine.Rendering.Universal;
|
|
using System.Collections;
|
|
|
|
namespace Scanner
|
|
{
|
|
public class Demo1 : MonoBehaviour
|
|
{
|
|
[Header("Mouse Click")]
|
|
public Camera m_Camera;
|
|
public Scanner.ScannerCameraEffect m_Scanner;
|
|
public float m_ScanVelocity = 50f;
|
|
[Range(1f, 20f)] public float m_ScanWidth = 10f;
|
|
public Color m_Leading;
|
|
public Color m_Middle;
|
|
public Color m_Trail;
|
|
public Color m_HorizontalBar;
|
|
float m_ScanDistance;
|
|
bool m_Scanning;
|
|
|
|
[Header("Object Halo")]
|
|
public Renderer m_RdTerrain;
|
|
public Transform m_TransObject;
|
|
|
|
void Start()
|
|
{
|
|
GraphicsSettings.renderPipelineAsset = null; // disable urp in this demo.
|
|
}
|
|
void Update()
|
|
{
|
|
if (m_Scanning)
|
|
m_ScanDistance += Time.deltaTime * m_ScanVelocity;
|
|
if (Input.GetMouseButtonDown(1))
|
|
{
|
|
Ray ray = m_Camera.ScreenPointToRay(Input.mousePosition);
|
|
RaycastHit hit;
|
|
if (Physics.Raycast(ray, out hit))
|
|
{
|
|
m_Scanning = true;
|
|
m_ScanDistance = 0f;
|
|
m_Scanner.m_Origin = hit.point;
|
|
}
|
|
}
|
|
m_Scanner.SetScanDistance(m_ScanDistance);
|
|
m_Scanner.m_Material.SetFloat("_ScanWidth", m_ScanWidth);
|
|
m_Scanner.m_Material.SetColor("_LeadColor", m_Leading);
|
|
m_Scanner.m_Material.SetColor("_MidColor", m_Middle);
|
|
m_Scanner.m_Material.SetColor("_TrailColor", m_Trail);
|
|
m_Scanner.m_Material.SetColor("_HBarColor", m_HorizontalBar);
|
|
|
|
m_RdTerrain.material.SetVector("_Center", m_TransObject.position);
|
|
}
|
|
}
|
|
}
|