50 lines
1.4 KiB
C#
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);
|
|
}
|
|
|
|
}
|
|
}
|
|
} |