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; [SerializeField] private Optional threshold; [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); var disableRenderer = _equipService.Aim > threshold.IfNotAllow(0.9f); if (isDisableRenderer) { renderer.enabled = !disableRenderer; } else { _material.SetInt(Clip,disableRenderer? 1 : 0); } } } }