BITFALL/Assets/Artists/Scripts/Props/Scope/Prop_ScopeMeshRenderer.cs

50 lines
1.4 KiB
C#

using System;
using System.Collections;
using System.Collections.Generic;
using BITFALL.Player.Equip;
using BITKit;
using BITKit.Entities;
using UnityEngine;
namespace BITFALL.Props
{
public class Prop_ScopeMeshRenderer : EntityBehavior
{
[SerializeField] private bool isDisableRenderer;
[SerializeField] private new Renderer renderer;
private Material _material;
[SerializeField] private Shader _shader;
[Inject] private IEquipService _equipService;
private static readonly int Clip = Shader.PropertyToID("_Clip");
public override void OnStart()
{
base.OnStart();
try
{
_material = renderer.material;
_material.shader = _shader;
renderer.material = _material;
}
catch (Exception e)
{
Debug.LogWarning(transform.name);
throw;
}
}
public override void OnUpdate(float deltaTime)
{
if (gameObject.activeInHierarchy is false) return;
base.OnUpdate(deltaTime);
if (isDisableRenderer)
{
renderer.enabled = !_equipService.AllowScope;
}
else
{
_material.SetInt(Clip,_equipService.AllowScope? 1 : 0);
}
}
}
}