Material 최적화 및 플레이어 이동 로직 수정 중
+ MaterialPropertyBlock 사용 금지 -> Material Instance 방식으로 변경 (MaterialPropertyBlock은 URP프로젝트 중 SRP Batcher를 사용하는 경우 비추천 방식) + 플레이어 이동 방식 velocity 형태로 변경 중
This commit is contained in:
parent
74c2a14855
commit
54582acbf4
@ -71,8 +71,15 @@ namespace BlueWater.Enemies.Bosses
|
||||
base.InitializeComponents();
|
||||
|
||||
SpriteRenderer = VisualLook.GetComponent<SpriteRenderer>();
|
||||
SpriteRenderer.enabled = false;
|
||||
Animator = VisualLook.GetComponent<Animator>();
|
||||
AnimationController = GetComponent<AnimationController>();
|
||||
|
||||
MaterialInstance = Instantiate(SpriteRenderer.material);
|
||||
SpriteRenderer.material = MaterialInstance;
|
||||
|
||||
BossHealthPoint.SetMaterialInstance(MaterialInstance);
|
||||
IsInitialized = true;
|
||||
}
|
||||
|
||||
#endregion
|
||||
@ -84,26 +91,23 @@ namespace BlueWater.Enemies.Bosses
|
||||
{
|
||||
if (!IsDissolveActive)
|
||||
{
|
||||
MaterialPropertyBlock.SetFloat(_dissolveValueHash, end);
|
||||
SpriteRenderer.SetPropertyBlock(MaterialPropertyBlock);
|
||||
MaterialInstance.SetFloat(_dissolveValueHash, end);
|
||||
yield break;
|
||||
}
|
||||
|
||||
MaterialPropertyBlock.SetFloat(_dissolveValueHash, start);
|
||||
SpriteRenderer.SetPropertyBlock(MaterialPropertyBlock);
|
||||
MaterialInstance.SetFloat(_dissolveValueHash, start);
|
||||
SpriteRenderer.enabled = true;
|
||||
|
||||
var elapsedTime = 0f;
|
||||
while (elapsedTime <= dissolveTime)
|
||||
{
|
||||
var value = Mathf.Lerp(start, end, elapsedTime / dissolveTime);
|
||||
MaterialPropertyBlock.SetFloat(_dissolveValueHash, value);
|
||||
SpriteRenderer.SetPropertyBlock(MaterialPropertyBlock);
|
||||
MaterialInstance.SetFloat(_dissolveValueHash, value);
|
||||
elapsedTime += Time.deltaTime;
|
||||
yield return null;
|
||||
}
|
||||
|
||||
MaterialPropertyBlock.SetFloat(_dissolveValueHash, end);
|
||||
SpriteRenderer.SetPropertyBlock(MaterialPropertyBlock);
|
||||
MaterialInstance.SetFloat(_dissolveValueHash, end);
|
||||
}
|
||||
|
||||
private void FlipVisualLook()
|
||||
|
@ -4,7 +4,6 @@ using BlueWater.Interfaces;
|
||||
using Pathfinding;
|
||||
using Sirenix.OdinInspector;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Serialization;
|
||||
|
||||
namespace BlueWater.Enemies.Bosses
|
||||
{
|
||||
@ -38,7 +37,7 @@ namespace BlueWater.Enemies.Bosses
|
||||
SpikeBarrage
|
||||
}
|
||||
|
||||
public abstract class Boss : MonoBehaviour, ITarget
|
||||
public abstract class Boss : MonoBehaviour, ITarget, IMaterialInstance
|
||||
{
|
||||
// Variables
|
||||
#region Variables
|
||||
@ -77,7 +76,7 @@ namespace BlueWater.Enemies.Bosses
|
||||
public Collider Target { get; protected set; }
|
||||
|
||||
public IAstarAI AstarAi;
|
||||
protected MaterialPropertyBlock MaterialPropertyBlock;
|
||||
public Material MaterialInstance { get; protected set; }
|
||||
|
||||
[Title("디졸브 스폰 효과")]
|
||||
[SerializeField]
|
||||
@ -88,6 +87,8 @@ namespace BlueWater.Enemies.Bosses
|
||||
|
||||
[SerializeField]
|
||||
protected float DieDissolveTime = 1f;
|
||||
|
||||
protected bool IsInitialized;
|
||||
|
||||
// Hashes
|
||||
protected static readonly int _dissolveValueHash = Shader.PropertyToID("_DissolveValue");
|
||||
@ -153,9 +154,6 @@ namespace BlueWater.Enemies.Bosses
|
||||
BossSkillController = GetComponent<BossSkillController>();
|
||||
|
||||
AstarAi = GetComponent<IAstarAI>();
|
||||
|
||||
MaterialPropertyBlock = new MaterialPropertyBlock();
|
||||
BossHealthPoint.SetMaterialPropertyBlock(MaterialPropertyBlock);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
@ -16,9 +16,6 @@ namespace BlueWater.Enemies.Bosses
|
||||
[SerializeField]
|
||||
private CapsuleCollider _characterCollider;
|
||||
|
||||
[SerializeField]
|
||||
private Renderer _renderer;
|
||||
|
||||
[SerializeField]
|
||||
private Transform _particleInstantiateLocation;
|
||||
|
||||
@ -49,6 +46,7 @@ namespace BlueWater.Enemies.Bosses
|
||||
[SerializeField]
|
||||
private ParticleSystem _dieParticle;
|
||||
|
||||
private Material _materialInstance;
|
||||
private FieldBossHealthPointUi _fieldBossHealthPointUi;
|
||||
private WaitForSeconds _flashWhiteWaitTime;
|
||||
private Coroutine _flashWhiteCoroutine;
|
||||
@ -56,7 +54,6 @@ namespace BlueWater.Enemies.Bosses
|
||||
|
||||
private bool _enableHealthChangedEvent;
|
||||
private string _bossName;
|
||||
private MaterialPropertyBlock _materialPropertyBlock;
|
||||
|
||||
// Hashes
|
||||
private static readonly int _isHitHash = Shader.PropertyToID("_IsHit");
|
||||
@ -89,7 +86,6 @@ namespace BlueWater.Enemies.Bosses
|
||||
private void InitializeComponent()
|
||||
{
|
||||
_characterCollider = GetComponent<CapsuleCollider>();
|
||||
_renderer = GetComponentInChildren<Renderer>();
|
||||
}
|
||||
|
||||
public void Initialize(bool enableHealthChangedEvent, int maxHealthPoint, string bossName, Transform particleInstantiateLocation = null)
|
||||
@ -179,13 +175,11 @@ namespace BlueWater.Enemies.Bosses
|
||||
|
||||
private IEnumerator FlashWhiteCoroutine()
|
||||
{
|
||||
_materialPropertyBlock.SetInteger(_isHitHash, 1);
|
||||
_renderer.SetPropertyBlock(_materialPropertyBlock);
|
||||
_materialInstance.SetInt(_isHitHash, 1);
|
||||
|
||||
yield return _flashWhiteWaitTime;
|
||||
|
||||
_materialPropertyBlock.SetInteger(_isHitHash, 0);
|
||||
_renderer.SetPropertyBlock(_materialPropertyBlock);
|
||||
_materialInstance.SetInt(_isHitHash, 0);
|
||||
|
||||
Utils.EndUniqueCoroutine(this, ref _flashWhiteCoroutine);
|
||||
}
|
||||
@ -196,6 +190,6 @@ namespace BlueWater.Enemies.Bosses
|
||||
Utils.EndUniqueCoroutine(this, ref _damageIntervalCoroutine);
|
||||
}
|
||||
|
||||
public void SetMaterialPropertyBlock(MaterialPropertyBlock materialPropertyBlock) => _materialPropertyBlock = materialPropertyBlock;
|
||||
public void SetMaterialInstance(Material materialInstance) => _materialInstance = materialInstance;
|
||||
}
|
||||
}
|
@ -51,6 +51,7 @@ namespace BlueWater.Enemies.Bosses.Rhinoceros
|
||||
SetMoveSpeed(RhinocerosData.MoveSpeed);
|
||||
StopMove();
|
||||
|
||||
yield return IsInitialized;
|
||||
yield return StartCoroutine(DissolveCoroutine(0f, 1f, SpawnDissolveTime));
|
||||
|
||||
BehaviorTree.EnableBehavior();
|
||||
|
@ -1,6 +1,5 @@
|
||||
using System.Collections;
|
||||
using BlueWater.Audios;
|
||||
using Sirenix.OdinInspector;
|
||||
using UnityEngine;
|
||||
|
||||
namespace BlueWater.Enemies.Bosses.SandMole
|
||||
@ -24,6 +23,7 @@ namespace BlueWater.Enemies.Bosses.SandMole
|
||||
SetMoveSpeed(SandMoleData.MoveSpeed);
|
||||
StopMove();
|
||||
|
||||
yield return IsInitialized;
|
||||
yield return StartCoroutine(DissolveCoroutine(0f, 1f, SpawnDissolveTime));
|
||||
|
||||
SpineController.SetSkin(SandMoleSkin.Normal.ToString());
|
||||
|
@ -108,7 +108,8 @@ namespace BlueWater.Enemies.Bosses.SandMole
|
||||
BossSkillController.Initialize(BossData.SkillDataList);
|
||||
SetMoveSpeed(SandMoleData.MoveSpeed);
|
||||
StopMove();
|
||||
|
||||
|
||||
yield return IsInitialized;
|
||||
yield return StartCoroutine(DissolveCoroutine(0f, 1f, SpawnDissolveTime));
|
||||
|
||||
SpineController.SetSkin(SandMoleSkin.Normal.ToString());
|
||||
|
@ -2,6 +2,7 @@
|
||||
using BlueWater.Interfaces;
|
||||
using BlueWater.Players;
|
||||
using Sirenix.OdinInspector;
|
||||
using Spine.Unity;
|
||||
using UnityEngine;
|
||||
|
||||
namespace BlueWater.Enemies.Bosses
|
||||
@ -39,6 +40,19 @@ namespace BlueWater.Enemies.Bosses
|
||||
// Unity events
|
||||
#region Unity events
|
||||
|
||||
protected override void Start()
|
||||
{
|
||||
base.Start();
|
||||
|
||||
var originalMaterial = SpineController.SkeletonAnimation.SkeletonDataAsset.atlasAssets[0].PrimaryMaterial;
|
||||
var newMaterial = SpineController.SkeletonAnimation.CustomMaterialOverride[originalMaterial];
|
||||
MaterialInstance = Instantiate(newMaterial);
|
||||
SpineController.SkeletonAnimation.CustomMaterialOverride[originalMaterial] = MaterialInstance;
|
||||
|
||||
BossHealthPoint.SetMaterialInstance(MaterialInstance);
|
||||
IsInitialized = true;
|
||||
}
|
||||
|
||||
protected override void Update()
|
||||
{
|
||||
base.Update();
|
||||
@ -58,7 +72,15 @@ namespace BlueWater.Enemies.Bosses
|
||||
base.InitializeComponents();
|
||||
|
||||
MeshRenderer = VisualLook.GetComponent<MeshRenderer>();
|
||||
MeshRenderer.enabled = false;
|
||||
SpineController = GetComponent<SpineController>();
|
||||
|
||||
// var originalMaterial = VisualLook.GetComponent<SkeletonAnimation>().SkeletonDataAsset.atlasAssets[0].PrimaryMaterial;
|
||||
// MaterialInstance = Instantiate(MeshRenderer.material);
|
||||
// SpineController.SkeletonAnimation.CustomMaterialOverride[originalMaterial] = MaterialInstance;
|
||||
// print($"originalMaterial : {originalMaterial.name}, custom : {SpineController.SkeletonAnimation.CustomMaterialOverride[originalMaterial]}");
|
||||
//
|
||||
// BossHealthPoint.SetMaterialInstance(MaterialInstance);
|
||||
}
|
||||
|
||||
#endregion
|
||||
@ -70,26 +92,23 @@ namespace BlueWater.Enemies.Bosses
|
||||
{
|
||||
if (!IsDissolveActive)
|
||||
{
|
||||
MaterialPropertyBlock.SetFloat(_dissolveValueHash, end);
|
||||
MeshRenderer.SetPropertyBlock(MaterialPropertyBlock);
|
||||
MaterialInstance.SetFloat(_dissolveValueHash, end);
|
||||
yield break;
|
||||
}
|
||||
|
||||
MaterialPropertyBlock.SetFloat(_dissolveValueHash, start);
|
||||
MeshRenderer.SetPropertyBlock(MaterialPropertyBlock);
|
||||
MaterialInstance.SetFloat(_dissolveValueHash, start);
|
||||
MeshRenderer.enabled = true;
|
||||
|
||||
var elapsedTime = 0f;
|
||||
while (elapsedTime <= dissolveTime)
|
||||
{
|
||||
var value = Mathf.Lerp(start, end, elapsedTime / dissolveTime);
|
||||
MaterialPropertyBlock.SetFloat(_dissolveValueHash, value);
|
||||
MeshRenderer.SetPropertyBlock(MaterialPropertyBlock);
|
||||
MaterialInstance.SetFloat(_dissolveValueHash, value);
|
||||
elapsedTime += Time.deltaTime;
|
||||
yield return null;
|
||||
}
|
||||
|
||||
MaterialPropertyBlock.SetFloat(_dissolveValueHash, end);
|
||||
MeshRenderer.SetPropertyBlock(MaterialPropertyBlock);
|
||||
MaterialInstance.SetFloat(_dissolveValueHash, end);
|
||||
}
|
||||
|
||||
protected virtual void FlipVisualLook()
|
||||
|
@ -60,8 +60,13 @@ namespace BlueWater.Enemies.Bosses.TitanSlime
|
||||
|
||||
if (TitanSlimeState.HasRabbit && titanSlimeState.Level == 1)
|
||||
{
|
||||
yield return IsInitialized;
|
||||
yield return StartCoroutine(DissolveCoroutine(0f, 1f, SpawnDissolveTime));
|
||||
}
|
||||
else
|
||||
{
|
||||
SpriteRenderer.enabled = true;
|
||||
}
|
||||
_rabbit.enabled = TitanSlimeState.HasRabbit;
|
||||
|
||||
BehaviorTree.EnableBehavior();
|
||||
|
@ -179,7 +179,6 @@ namespace BlueWater.Players.Combat
|
||||
}
|
||||
|
||||
_animationController.SetCurrentAnimationSpeed(ComboAttacks[CurrentComboAttackCount - 1].Speed);
|
||||
AudioManager.Instance.PlaySfx("FirstComboAttack");
|
||||
IsComboAttackPossible = true;
|
||||
var doDamage = false;
|
||||
|
||||
@ -188,9 +187,11 @@ namespace BlueWater.Players.Combat
|
||||
{
|
||||
if (!doDamage && _animationController.GetCurrentAnimationNormalizedTime() >= 0.28f)
|
||||
{
|
||||
AudioManager.Instance.PlaySfx("FirstComboAttack");
|
||||
var moveSpeed = ComboAttacks[CurrentComboAttackCount - 1].MovePower;
|
||||
var finalVelocity = _iPhysicMovable.CurrentDirection * moveSpeed;
|
||||
_rigidbody.MovePosition(transform.position + finalVelocity * moveSpeed * Time.deltaTime);
|
||||
//_rigidbody.MovePosition(transform.position + finalVelocity * moveSpeed * Time.deltaTime);
|
||||
_rigidbody.linearVelocity = finalVelocity;
|
||||
doDamage = true;
|
||||
DoDamage(CurrentComboAttackCount, _iPhysicMovable.CurrentDirection);
|
||||
}
|
||||
@ -224,7 +225,6 @@ namespace BlueWater.Players.Combat
|
||||
}
|
||||
|
||||
_animationController.SetCurrentAnimationSpeed(ComboAttacks[CurrentComboAttackCount - 1].Speed);
|
||||
AudioManager.Instance.PlaySfx("SecondComboAttack");
|
||||
var doDamage = false;
|
||||
|
||||
while (_animationController.IsComparingCurrentAnimation("ComboAttack2") &&
|
||||
@ -232,9 +232,11 @@ namespace BlueWater.Players.Combat
|
||||
{
|
||||
if (!doDamage && _animationController.GetCurrentAnimationNormalizedTime() >= 0.3f)
|
||||
{
|
||||
AudioManager.Instance.PlaySfx("SecondComboAttack");
|
||||
var moveSpeed = ComboAttacks[CurrentComboAttackCount - 1].MovePower;
|
||||
var finalVelocity = _iPhysicMovable.CurrentDirection * moveSpeed;
|
||||
_rigidbody.MovePosition(transform.position + finalVelocity * moveSpeed * Time.deltaTime);
|
||||
//_rigidbody.MovePosition(transform.position + finalVelocity * moveSpeed * Time.deltaTime);
|
||||
_rigidbody.linearVelocity = finalVelocity;
|
||||
doDamage = true;
|
||||
DoDamage(CurrentComboAttackCount, _iPhysicMovable.CurrentDirection);
|
||||
}
|
||||
|
@ -38,7 +38,7 @@ namespace BlueWater.Players.Combat
|
||||
[field: SerializeField, Range(1f, 10f), Tooltip("이동 속도")]
|
||||
public float MoveSpeed { get; private set; } = 7f;
|
||||
|
||||
public float MoveSpeedCoefficient { get; private set; }= 1f;
|
||||
public float MoveSpeedCoefficient { get; private set; } = 1f;
|
||||
|
||||
public bool IsMoveEnabled { get; private set; } = true;
|
||||
|
||||
@ -81,8 +81,11 @@ namespace BlueWater.Players.Combat
|
||||
_animationController.SetAnimationParameter("zDirection", _currentDirection.z);
|
||||
}
|
||||
}
|
||||
|
||||
private float _finalSpeed;
|
||||
|
||||
public Vector3 PushDirection { get; private set; }
|
||||
public float PushPower { get; private set; }
|
||||
public float PushReductionCoefficient { get; private set; }
|
||||
private Vector3 _finalVelocity;
|
||||
|
||||
// Dash
|
||||
[field: Title("대쉬")]
|
||||
@ -136,9 +139,28 @@ namespace BlueWater.Players.Combat
|
||||
|
||||
private void FixedUpdate()
|
||||
{
|
||||
if (!CanMove()) return;
|
||||
if (!IsMoveEnabled) return;
|
||||
|
||||
Move();
|
||||
if (!_isDashing && _comboAttackable?.CurrentComboAttackCount <= 0 && _skillHandler?.IsActivatingSkill == false)
|
||||
{
|
||||
var velocityDirection = _inputDirection;
|
||||
if (_stunnable?.IsStunned == true)
|
||||
{
|
||||
velocityDirection = Vector3.zero;
|
||||
}
|
||||
else
|
||||
{
|
||||
CurrentDirection = velocityDirection;
|
||||
}
|
||||
|
||||
IsMoving = velocityDirection != Vector3.zero;
|
||||
_finalVelocity = velocityDirection * (MoveSpeed * MoveSpeedCoefficient);
|
||||
var pushVelocity = PushDirection * PushPower;
|
||||
_finalVelocity += pushVelocity;
|
||||
Rigidbody.linearVelocity = _finalVelocity;
|
||||
}
|
||||
|
||||
PushPower = Mathf.Max(0, PushPower - PushReductionCoefficient * Time.deltaTime);
|
||||
}
|
||||
|
||||
private void OnApplicationQuit()
|
||||
@ -284,7 +306,11 @@ namespace BlueWater.Players.Combat
|
||||
_dashParticle.Play();
|
||||
}
|
||||
|
||||
var dashDirection = CurrentDirection;
|
||||
var dashDirection = _inputDirection;
|
||||
if (dashDirection == Vector3.zero)
|
||||
{
|
||||
dashDirection = CurrentDirection;
|
||||
}
|
||||
var animationStarted = false;
|
||||
yield return StartCoroutine(_animationController.WaitForAnimationToRun("DashState",
|
||||
success => animationStarted = success));
|
||||
|
@ -12,8 +12,8 @@ namespace BlueWater.Players
|
||||
// Variables
|
||||
#region Variables
|
||||
// Components
|
||||
[SerializeField]
|
||||
private SkeletonAnimation _skeletonAnimation;
|
||||
[field: SerializeField]
|
||||
public SkeletonAnimation SkeletonAnimation { get; private set; }
|
||||
|
||||
private AnimationState _animationState;
|
||||
|
||||
@ -39,8 +39,9 @@ namespace BlueWater.Players
|
||||
[Button("셋팅 초기화")]
|
||||
public virtual void InitializeComponents()
|
||||
{
|
||||
_skeletonAnimation = transform.GetComponentInChildren<SkeletonAnimation>();
|
||||
_animationState = _skeletonAnimation.AnimationState;
|
||||
SkeletonAnimation = transform.GetComponentInChildren<SkeletonAnimation>();
|
||||
_animationState = SkeletonAnimation.AnimationState;
|
||||
|
||||
SetSkin(_initialSkinName);
|
||||
}
|
||||
|
||||
@ -56,7 +57,7 @@ namespace BlueWater.Players
|
||||
/// <returns></returns>
|
||||
public TrackEntry PlayAnimation(string animationName, bool isLoopActive, float speed = 1f, bool isReverse = false)
|
||||
{
|
||||
if (!_skeletonAnimation || _animationState == null) return null;
|
||||
if (!SkeletonAnimation || _animationState == null) return null;
|
||||
|
||||
if (string.IsNullOrEmpty(animationName))
|
||||
{
|
||||
@ -77,7 +78,7 @@ namespace BlueWater.Players
|
||||
|
||||
public void SetSkin(string skinName)
|
||||
{
|
||||
if (_skeletonAnimation == null && _animationState == null) return;
|
||||
if (SkeletonAnimation == null && _animationState == null) return;
|
||||
|
||||
if (string.IsNullOrEmpty(skinName))
|
||||
{
|
||||
@ -85,9 +86,9 @@ namespace BlueWater.Players
|
||||
return;
|
||||
}
|
||||
|
||||
_skeletonAnimation.Skeleton.SetSkin(skinName);
|
||||
_skeletonAnimation.Skeleton.SetSlotsToSetupPose();
|
||||
_animationState.Apply(_skeletonAnimation.Skeleton);
|
||||
SkeletonAnimation.Skeleton.SetSkin(skinName);
|
||||
SkeletonAnimation.Skeleton.SetSlotsToSetupPose();
|
||||
_animationState.Apply(SkeletonAnimation.Skeleton);
|
||||
}
|
||||
|
||||
public async Awaitable WaitForAnimationCompletion(TrackEntry trackEntry, bool isReverse = false)
|
||||
|
9
Assets/02.Scripts/Interface/IMaterialInstance.cs
Normal file
9
Assets/02.Scripts/Interface/IMaterialInstance.cs
Normal file
@ -0,0 +1,9 @@
|
||||
using UnityEngine;
|
||||
|
||||
namespace BlueWater.Interfaces
|
||||
{
|
||||
public interface IMaterialInstance
|
||||
{
|
||||
Material MaterialInstance { get; }
|
||||
}
|
||||
}
|
3
Assets/02.Scripts/Interface/IMaterialInstance.cs.meta
Normal file
3
Assets/02.Scripts/Interface/IMaterialInstance.cs.meta
Normal file
@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: fb02fa7cce84ebf43b17c7f1700f1180
|
||||
timeCreated: 1716899052
|
@ -1,3 +1,4 @@
|
||||
using BlueWater.Interfaces;
|
||||
using UnityEngine;
|
||||
|
||||
namespace BlueWater
|
||||
@ -11,7 +12,8 @@ namespace BlueWater
|
||||
private float _size = 0.5f;
|
||||
|
||||
private Camera _mainCamera;
|
||||
private Renderer _previousRenderer;
|
||||
private Material _hitMaterialInstance;
|
||||
private Material _previousMaterialInstance;
|
||||
|
||||
// Hashes
|
||||
private static readonly int _sizeHash = Shader.PropertyToID("_Size");
|
||||
@ -30,28 +32,28 @@ namespace BlueWater
|
||||
|
||||
if (Physics.Raycast(ray, out var hit, 100f, _maskLayer))
|
||||
{
|
||||
var hitRenderer = hit.collider.GetComponentInChildren<Renderer>();
|
||||
if (!hitRenderer) return;
|
||||
_hitMaterialInstance = hit.collider.GetComponent<IMaterialInstance>()?.MaterialInstance;
|
||||
if (!_hitMaterialInstance) return;
|
||||
|
||||
if (!hitRenderer.material.HasProperty(_sizeHash)) return;
|
||||
if (!_hitMaterialInstance.HasProperty(_sizeHash)) return;
|
||||
|
||||
if (_previousRenderer && _previousRenderer != hitRenderer && _previousRenderer.material.HasProperty(_sizeHash))
|
||||
if (_previousMaterialInstance && _previousMaterialInstance != _hitMaterialInstance && _previousMaterialInstance.HasProperty(_sizeHash))
|
||||
{
|
||||
_previousRenderer.material.SetFloat(_sizeHash, 0f);
|
||||
_previousMaterialInstance.SetFloat(_sizeHash, 0f);
|
||||
}
|
||||
|
||||
hitRenderer.material.SetFloat(_sizeHash, _size);
|
||||
_previousRenderer = hitRenderer;
|
||||
_hitMaterialInstance.SetFloat(_sizeHash, _size);
|
||||
_previousMaterialInstance = _hitMaterialInstance;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!_previousRenderer) return;
|
||||
if (!_previousMaterialInstance) return;
|
||||
|
||||
if (_previousRenderer.material.HasProperty(_sizeHash))
|
||||
if (_previousMaterialInstance.HasProperty(_sizeHash))
|
||||
{
|
||||
_previousRenderer.material.SetFloat(_sizeHash, 0f);
|
||||
_previousMaterialInstance.SetFloat(_sizeHash, 0f);
|
||||
}
|
||||
_previousRenderer = null;
|
||||
_previousMaterialInstance = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -95,7 +95,7 @@ Material:
|
||||
- _Cutoff: 0.5
|
||||
- _DetailAlbedoMapScale: 1
|
||||
- _DetailNormalMapScale: 1
|
||||
- _DissolveValue: 0
|
||||
- _DissolveValue: 1
|
||||
- _DstBlend: 0
|
||||
- _DstBlendAlpha: 0
|
||||
- _EnvironmentReflections: 1
|
||||
|
@ -95,7 +95,7 @@ Material:
|
||||
- _Cutoff: 0.5
|
||||
- _DetailAlbedoMapScale: 1
|
||||
- _DetailNormalMapScale: 1
|
||||
- _DissolveValue: 0
|
||||
- _DissolveValue: 1
|
||||
- _DstBlend: 0
|
||||
- _DstBlendAlpha: 0
|
||||
- _EnvironmentReflections: 1
|
||||
|
@ -95,7 +95,7 @@ Material:
|
||||
- _Cutoff: 0.5
|
||||
- _DetailAlbedoMapScale: 1
|
||||
- _DetailNormalMapScale: 1
|
||||
- _DissolveValue: 0
|
||||
- _DissolveValue: 1
|
||||
- _DstBlend: 0
|
||||
- _DstBlendAlpha: 0
|
||||
- _EnvironmentReflections: 1
|
||||
|
@ -95,7 +95,7 @@ Material:
|
||||
- _Cutoff: 0.5
|
||||
- _DetailAlbedoMapScale: 1
|
||||
- _DetailNormalMapScale: 1
|
||||
- _DissolveValue: 0
|
||||
- _DissolveValue: 1
|
||||
- _DstBlend: 0
|
||||
- _DstBlendAlpha: 0
|
||||
- _EnvironmentReflections: 1
|
||||
|
@ -109,7 +109,7 @@ Material:
|
||||
- _OcclusionStrength: 1
|
||||
- _Opacity: 0.7
|
||||
- _Parallax: 0.005
|
||||
- _QueueControl: 1
|
||||
- _QueueControl: 0
|
||||
- _QueueOffset: 0
|
||||
- _ReceiveShadows: 1
|
||||
- _Size: 0
|
||||
|
@ -95,7 +95,7 @@ Material:
|
||||
- _Cutoff: 0.5
|
||||
- _DetailAlbedoMapScale: 1
|
||||
- _DetailNormalMapScale: 1
|
||||
- _DissolveValue: 0
|
||||
- _DissolveValue: 1
|
||||
- _DstBlend: 0
|
||||
- _DstBlendAlpha: 0
|
||||
- _EnvironmentReflections: 1
|
||||
|
@ -555,7 +555,7 @@ MonoBehaviour:
|
||||
<Range>k__BackingField: 1.5
|
||||
<Angle>k__BackingField: 180
|
||||
<Speed>k__BackingField: 0.3
|
||||
<MovePower>k__BackingField: 2
|
||||
<MovePower>k__BackingField: 1
|
||||
<TargetLayer>k__BackingField:
|
||||
serializedVersion: 2
|
||||
m_Bits: 69632
|
||||
|
@ -3651,6 +3651,10 @@ PrefabInstance:
|
||||
propertyPath: m_Name
|
||||
value: SandMoleMapController
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8874040642671342955, guid: 02759e0bd03056e499ebce198da0c9d6, type: 3}
|
||||
propertyPath: m_LocalPosition.z
|
||||
value: 7
|
||||
objectReference: {fileID: 0}
|
||||
m_RemovedComponents: []
|
||||
m_RemovedGameObjects: []
|
||||
m_AddedGameObjects:
|
||||
|
@ -16,7 +16,7 @@ Material:
|
||||
- _STRAIGHT_ALPHA_INPUT
|
||||
m_InvalidKeywords: []
|
||||
m_LightmapFlags: 4
|
||||
m_EnableInstancingVariants: 0
|
||||
m_EnableInstancingVariants: 1
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: -1
|
||||
stringTagMap: {}
|
||||
|
@ -36,24 +36,24 @@ MonoBehaviour:
|
||||
- rid: 5032277253446697243
|
||||
- rid: 5032277253446697244
|
||||
- rid: 5032277253446697245
|
||||
- rid: 7789284894475288580
|
||||
- rid: 7789285205019197450
|
||||
- rid: 5032277253446697247
|
||||
- rid: 5032277253446697248
|
||||
- rid: 7789284894475288581
|
||||
- rid: 7789284894475288582
|
||||
- rid: 7789285205019197451
|
||||
- rid: 7789285205019197452
|
||||
- rid: 5032277253446697251
|
||||
- rid: 7789284894475288583
|
||||
- rid: 7789285205019197453
|
||||
- rid: 5032277253446697253
|
||||
- rid: 7789284894475288584
|
||||
- rid: 7789285205019197454
|
||||
- rid: 5032277253446697255
|
||||
- rid: 7789284894475288585
|
||||
- rid: 7789284894475288586
|
||||
- rid: 7789285205019197455
|
||||
- rid: 7789285205019197456
|
||||
- rid: 5032277253446697258
|
||||
- rid: 5032277253446697259
|
||||
- rid: 7789284894475288587
|
||||
- rid: 7789284894475288588
|
||||
- rid: 7789285205019197457
|
||||
- rid: 7789285205019197458
|
||||
- rid: 5032277253446697262
|
||||
- rid: 7789284894475288589
|
||||
- rid: 7789285205019197459
|
||||
m_RuntimeSettings:
|
||||
m_List:
|
||||
- rid: 5032277253446697243
|
||||
@ -159,7 +159,7 @@ MonoBehaviour:
|
||||
m_version: 0
|
||||
m_EnableCompilationCaching: 1
|
||||
m_EnableValidityChecks: 1
|
||||
- rid: 7789284894475288580
|
||||
- rid: 7789285205019197450
|
||||
type: {class: Renderer2DResources, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime}
|
||||
data:
|
||||
m_Version: 0
|
||||
@ -174,14 +174,14 @@ MonoBehaviour:
|
||||
m_DefaultLitMaterial: {fileID: 2100000, guid: a97c105638bdf8b4a8650670310a4cd3, type: 2}
|
||||
m_DefaultUnlitMaterial: {fileID: 2100000, guid: 9dfc825aed78fcd4ba02077103263b40, type: 2}
|
||||
m_DefaultMaskMaterial: {fileID: 2100000, guid: 15d0c3709176029428a0da2f8cecf0b5, type: 2}
|
||||
- rid: 7789284894475288581
|
||||
- rid: 7789285205019197451
|
||||
type: {class: URPShaderStrippingSetting, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime}
|
||||
data:
|
||||
m_Version: 0
|
||||
m_StripUnusedPostProcessingVariants: 0
|
||||
m_StripUnusedVariants: 1
|
||||
m_StripScreenCoordOverrideVariants: 1
|
||||
- rid: 7789284894475288582
|
||||
- rid: 7789285205019197452
|
||||
type: {class: UniversalRenderPipelineEditorMaterials, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime}
|
||||
data:
|
||||
m_DefaultMaterial: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
|
||||
@ -189,7 +189,7 @@ MonoBehaviour:
|
||||
m_DefaultLineMaterial: {fileID: 2100000, guid: e823cd5b5d27c0f4b8256e7c12ee3e6d, type: 2}
|
||||
m_DefaultTerrainMaterial: {fileID: 2100000, guid: 594ea882c5a793440b60ff72d896021e, type: 2}
|
||||
m_DefaultDecalMaterial: {fileID: 2100000, guid: 31d0dcc6f2dd4e4408d18036a2c93862, type: 2}
|
||||
- rid: 7789284894475288583
|
||||
- rid: 7789285205019197453
|
||||
type: {class: UniversalRenderPipelineEditorShaders, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime}
|
||||
data:
|
||||
m_AutodeskInteractive: {fileID: 4800000, guid: 0e9d5a909a1f7e84882a534d0d11e49f, type: 3}
|
||||
@ -201,7 +201,7 @@ MonoBehaviour:
|
||||
m_DefaultSpeedTree7Shader: {fileID: 4800000, guid: 0f4122b9a743b744abe2fb6a0a88868b, type: 3}
|
||||
m_DefaultSpeedTree8Shader: {fileID: -6465566751694194690, guid: 9920c1f1781549a46ba081a2a15a16ec, type: 3}
|
||||
m_DefaultSpeedTree9Shader: {fileID: -6465566751694194690, guid: cbd3e1cc4ae141c42a30e33b4d666a61, type: 3}
|
||||
- rid: 7789284894475288584
|
||||
- rid: 7789285205019197454
|
||||
type: {class: GPUResidentDrawerResources, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.GPUDriven.Runtime}
|
||||
data:
|
||||
m_Version: 0
|
||||
@ -214,7 +214,7 @@ MonoBehaviour:
|
||||
m_OcclusionCullingDebugKernels: {fileID: 7200000, guid: b23e766bcf50ca4438ef186b174557df, type: 3}
|
||||
m_DebugOcclusionTestPS: {fileID: 4800000, guid: d3f0849180c2d0944bc71060693df100, type: 3}
|
||||
m_DebugOccluderPS: {fileID: 4800000, guid: b3c92426a88625841ab15ca6a7917248, type: 3}
|
||||
- rid: 7789284894475288585
|
||||
- rid: 7789285205019197455
|
||||
type: {class: ProbeVolumeDebugResources, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Core.Runtime}
|
||||
data:
|
||||
m_Version: 1
|
||||
@ -224,7 +224,7 @@ MonoBehaviour:
|
||||
probeVolumeOffsetDebugShader: {fileID: 4800000, guid: db8bd7436dc2c5f4c92655307d198381, type: 3}
|
||||
probeSamplingDebugMesh: {fileID: -3555484719484374845, guid: 20be25aac4e22ee49a7db76fb3df6de2, type: 3}
|
||||
numbersDisplayTex: {fileID: 2800000, guid: 73fe53b428c5b3440b7e87ee830b608a, type: 3}
|
||||
- rid: 7789284894475288586
|
||||
- rid: 7789285205019197456
|
||||
type: {class: ProbeVolumeBakingResources, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Core.Runtime}
|
||||
data:
|
||||
m_Version: 1
|
||||
@ -237,19 +237,19 @@ MonoBehaviour:
|
||||
skyOcclusionRT: {fileID: 4807578003741378534, guid: dfaf42b38dd001f49a72d8102b709f29, type: 3}
|
||||
renderingLayerCS: {fileID: 7200000, guid: a63c9cf933e3d8f41ae680a372784ebf, type: 3}
|
||||
renderingLayerRT: {fileID: 4807578003741378534, guid: c2be09c936362eb49a58f08aeb30627a, type: 3}
|
||||
- rid: 7789284894475288587
|
||||
- rid: 7789285205019197457
|
||||
type: {class: ProbeVolumeGlobalSettings, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Core.Runtime}
|
||||
data:
|
||||
m_Version: 1
|
||||
m_ProbeVolumeDisableStreamingAssets: 0
|
||||
- rid: 7789284894475288588
|
||||
- rid: 7789285205019197458
|
||||
type: {class: ProbeVolumeRuntimeResources, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Core.Runtime}
|
||||
data:
|
||||
m_Version: 1
|
||||
probeVolumeBlendStatesCS: {fileID: 7200000, guid: a3f7b8c99de28a94684cb1daebeccf5d, type: 3}
|
||||
probeVolumeUploadDataCS: {fileID: 7200000, guid: 0951de5992461754fa73650732c4954c, type: 3}
|
||||
probeVolumeUploadDataL2CS: {fileID: 7200000, guid: 6196f34ed825db14b81fb3eb0ea8d931, type: 3}
|
||||
- rid: 7789284894475288589
|
||||
- rid: 7789285205019197459
|
||||
type: {class: IncludeAdditionalRPAssets, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Core.Runtime}
|
||||
data:
|
||||
m_version: 0
|
||||
|
@ -13,7 +13,7 @@ PlayerSettings:
|
||||
useOnDemandResources: 0
|
||||
accelerometerFrequency: 60
|
||||
companyName: CapersUnity
|
||||
productName: NewBlueWater
|
||||
productName: ActionHustle
|
||||
defaultCursor: {fileID: 0}
|
||||
cursorHotspot: {x: 0, y: 0}
|
||||
m_SplashScreenBackgroundColor: {r: 0.13725491, g: 0.12156863, b: 0.1254902, a: 1}
|
||||
|
@ -4,7 +4,7 @@
|
||||
QualitySettings:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 5
|
||||
m_CurrentQuality: 5
|
||||
m_CurrentQuality: 0
|
||||
m_QualitySettings:
|
||||
- serializedVersion: 4
|
||||
name: Very Low
|
||||
@ -319,4 +319,7 @@ QualitySettings:
|
||||
terrainMaxTrees: 50
|
||||
excludedTargetPlatforms: []
|
||||
m_TextureMipmapLimitGroupNames: []
|
||||
m_PerPlatformDefaultQuality: {}
|
||||
m_PerPlatformDefaultQuality:
|
||||
Android: 0
|
||||
Standalone: 0
|
||||
Windows Store Apps: 0
|
||||
|
Loading…
Reference in New Issue
Block a user