#27 SandMole, MiniSandMole 스파인 동기화 완료
+ 스파인 오브젝트에 커스텀 Material 추가 및 MaterialPropertyBlock 방식 추가 + 개발자 키(F3) 전투플레이어 체력 회복 기능 추가 + SandMole Spike 파티클 변경 + 맵 이동할 때, 재시작할 때, 보스 체력 바 제거
This commit is contained in:
parent
c766d4879b
commit
c9e2a6ab5d
@ -10772,7 +10772,7 @@ MonoBehaviour:
|
||||
m_PreserveAspect: 0
|
||||
m_FillCenter: 1
|
||||
m_FillMethod: 1
|
||||
m_FillAmount: 0.613
|
||||
m_FillAmount: 0.3
|
||||
m_FillClockwise: 1
|
||||
m_FillOrigin: 0
|
||||
m_UseSpriteMesh: 0
|
||||
|
@ -71,6 +71,7 @@ namespace BlueWater.Enemies.Bosses
|
||||
public Collider Target { get; protected set; }
|
||||
|
||||
public IAstarAI AstarAi;
|
||||
protected MaterialPropertyBlock MaterialPropertyBlock;
|
||||
|
||||
#endregion
|
||||
|
||||
@ -133,6 +134,9 @@ namespace BlueWater.Enemies.Bosses
|
||||
BossSkillController = GetComponent<BossSkillController>();
|
||||
|
||||
AstarAi = GetComponent<IAstarAI>();
|
||||
|
||||
MaterialPropertyBlock = new MaterialPropertyBlock();
|
||||
BossHealthPoint.SetMaterialPropertyBlock(MaterialPropertyBlock);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
@ -55,6 +55,7 @@ namespace BlueWater.Enemies.Bosses
|
||||
private Coroutine _damageIntervalCoroutine;
|
||||
|
||||
private bool _enableHealthChangedEvent;
|
||||
private MaterialPropertyBlock _materialPropertyBlock;
|
||||
|
||||
// Hashes
|
||||
private static readonly int _isHitHash = Shader.PropertyToID("_IsHit");
|
||||
@ -77,10 +78,9 @@ namespace BlueWater.Enemies.Bosses
|
||||
|
||||
private void OnDestroy()
|
||||
{
|
||||
if (_enableHealthChangedEvent && _fieldBossHealthPointUi)
|
||||
{
|
||||
OnHealthChanged -= _fieldBossHealthPointUi.SetCurrentHealthPoint;
|
||||
}
|
||||
if (!_enableHealthChangedEvent || !_fieldBossHealthPointUi) return;
|
||||
|
||||
OnHealthChanged -= _fieldBossHealthPointUi.SetCurrentHealthPoint;
|
||||
}
|
||||
|
||||
// Initialize methods
|
||||
@ -122,10 +122,12 @@ namespace BlueWater.Enemies.Bosses
|
||||
var changeHp = Mathf.Max(CurrentHealthPoint - damageAmount, 0);
|
||||
SetCurrentHealthPoint(changeHp);
|
||||
|
||||
if (_renderer.material.HasInt(_isHitHash))
|
||||
{
|
||||
Utils.StartUniqueCoroutine(this, ref _flashWhiteCoroutine, FlashWhiteCoroutine());
|
||||
}
|
||||
Utils.StartUniqueCoroutine(this, ref _flashWhiteCoroutine, FlashWhiteCoroutine());
|
||||
|
||||
// if (_renderer.material.HasInt(_isHitHash))
|
||||
// {
|
||||
// Utils.StartUniqueCoroutine(this, ref _flashWhiteCoroutine, FlashWhiteCoroutine());
|
||||
// }
|
||||
|
||||
// 죽었는지 체크
|
||||
if (changeHp == 0)
|
||||
@ -175,9 +177,13 @@ namespace BlueWater.Enemies.Bosses
|
||||
|
||||
private IEnumerator FlashWhiteCoroutine()
|
||||
{
|
||||
_renderer.material.SetInt(_isHitHash, 1);
|
||||
_materialPropertyBlock.SetInteger(_isHitHash, 1);
|
||||
_renderer.SetPropertyBlock(_materialPropertyBlock);
|
||||
|
||||
yield return _flashWhiteWaitTime;
|
||||
_renderer.material.SetInt(_isHitHash, 0);
|
||||
|
||||
_materialPropertyBlock.SetInteger(_isHitHash, 0);
|
||||
_renderer.SetPropertyBlock(_materialPropertyBlock);
|
||||
|
||||
Utils.EndUniqueCoroutine(this, ref _flashWhiteCoroutine);
|
||||
}
|
||||
@ -188,12 +194,6 @@ namespace BlueWater.Enemies.Bosses
|
||||
Utils.EndUniqueCoroutine(this, ref _damageIntervalCoroutine);
|
||||
}
|
||||
|
||||
public void HideFieldBossHealthPointUi()
|
||||
{
|
||||
if (_fieldBossHealthPointUi.gameObject.activeSelf)
|
||||
{
|
||||
_fieldBossHealthPointUi.SetActiveHpSlider(false);
|
||||
}
|
||||
}
|
||||
public void SetMaterialPropertyBlock(MaterialPropertyBlock materialPropertyBlock) => _materialPropertyBlock = materialPropertyBlock;
|
||||
}
|
||||
}
|
@ -24,28 +24,33 @@ namespace BlueWater.Enemies.Bosses.SandMole
|
||||
|
||||
public override async void Initialize()
|
||||
{
|
||||
HitBoxCollider.enabled = false;
|
||||
BossHealthPoint.Initialize(false, BossData.MaxHealthPoint,
|
||||
BossData.DisplayName, SandMoleMapController.ParticleInstanceLocation);
|
||||
BossSkillController.Initialize(BossData.SkillDataList);
|
||||
SetMoveSpeed(SandMoleData.MoveSpeed);
|
||||
StopMove();
|
||||
|
||||
MeshRenderer.material.SetFloat(_dissolveValueHash, 0f);
|
||||
MaterialPropertyBlock.SetFloat(_dissolveValueHash, 0f);
|
||||
MeshRenderer.SetPropertyBlock(MaterialPropertyBlock);
|
||||
var elapsedTime = 0f;
|
||||
while (elapsedTime <= _spawnDissolveTime)
|
||||
{
|
||||
var value = Mathf.Lerp(0f, 1f, elapsedTime / _spawnDissolveTime);
|
||||
MeshRenderer.material.SetFloat(_dissolveValueHash, value);
|
||||
MaterialPropertyBlock.SetFloat(_dissolveValueHash, value);
|
||||
MeshRenderer.SetPropertyBlock(MaterialPropertyBlock);
|
||||
elapsedTime += Time.deltaTime;
|
||||
await Awaitable.NextFrameAsync();
|
||||
}
|
||||
MeshRenderer.material.SetFloat(_dissolveValueHash, 1f);
|
||||
|
||||
MaterialPropertyBlock.SetFloat(_dissolveValueHash, 1f);
|
||||
MeshRenderer.SetPropertyBlock(MaterialPropertyBlock);
|
||||
|
||||
SpineController.SetSkin(SandMoleSkin.Normal.ToString());
|
||||
var roarTrack = SpineController.PlayAnimation(SandMoleAnimation.Roar.ToString(), false);
|
||||
|
||||
await SpineController.WaitForAnimationCompletion(roarTrack);
|
||||
BehaviorTree.EnableBehavior();
|
||||
HitBoxCollider.enabled = true;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
@ -1,4 +1,5 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using BlueWater.Items;
|
||||
using BlueWater.Maps;
|
||||
@ -27,7 +28,8 @@ namespace BlueWater.Enemies.Bosses.SandMole
|
||||
{
|
||||
None = 0,
|
||||
Die,
|
||||
Dig,
|
||||
DigIn,
|
||||
DigOut,
|
||||
Idle,
|
||||
Roar,
|
||||
Spin,
|
||||
@ -90,6 +92,17 @@ namespace BlueWater.Enemies.Bosses.SandMole
|
||||
|
||||
public override async void Initialize()
|
||||
{
|
||||
StartCoroutine(InitializeCoroutine());
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
// Methods
|
||||
#region Methods
|
||||
|
||||
private IEnumerator InitializeCoroutine()
|
||||
{
|
||||
HitBoxCollider.enabled = false;
|
||||
BossHealthPoint.Initialize(true, SandMoleData.MaxHealthPoint,
|
||||
SandMoleData.DisplayName, SandMoleMapController.ParticleInstanceLocation);
|
||||
BossHealthPoint.OnHealthChanged += SummonMiniSandMole;
|
||||
@ -98,17 +111,25 @@ namespace BlueWater.Enemies.Bosses.SandMole
|
||||
StopMove();
|
||||
|
||||
SpineController.SetSkin(SandMoleSkin.Normal.ToString());
|
||||
var isCameraShakeActive = false;
|
||||
var roarTrack = SpineController.PlayAnimation(SandMoleAnimation.Roar.ToString(), false);
|
||||
while (!roarTrack.IsComplete)
|
||||
{
|
||||
if (CurrentHealthPoint == 0) yield break;
|
||||
|
||||
if (roarTrack.TrackTime >= 1f && !isCameraShakeActive)
|
||||
{
|
||||
VisualFeedbackManager.Instance.CameraShake(CombatCameraManager.Instance.BaseCombatCamera, 2f, 1f);
|
||||
isCameraShakeActive = true;
|
||||
}
|
||||
|
||||
yield return null;
|
||||
}
|
||||
|
||||
await SpineController.WaitForAnimationCompletion(roarTrack);
|
||||
BehaviorTree.EnableBehavior();
|
||||
HitBoxCollider.enabled = true;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
// Methods
|
||||
#region Methods
|
||||
|
||||
protected override async void Die()
|
||||
{
|
||||
BossSkillController.StopAllCoroutine();
|
||||
|
@ -18,7 +18,7 @@ namespace BlueWater.Enemies.Bosses
|
||||
// Classes
|
||||
[field: SerializeField]
|
||||
public SpineController SpineController { get; private set; }
|
||||
|
||||
|
||||
public bool IsMoving { get; private set; }
|
||||
|
||||
private Vector3 _currentDirection = Vector3.right;
|
||||
|
@ -16,6 +16,9 @@ namespace BlueWater.Players.Combat
|
||||
// Components
|
||||
[SerializeField]
|
||||
private Rigidbody _rigidbody;
|
||||
|
||||
[SerializeField]
|
||||
private CapsuleCollider _capsuleCollider;
|
||||
|
||||
[SerializeField]
|
||||
private AnimationController _animationController;
|
||||
@ -91,6 +94,7 @@ namespace BlueWater.Players.Combat
|
||||
private void InitializeComponents()
|
||||
{
|
||||
_rigidbody = GetComponent<Rigidbody>();
|
||||
_capsuleCollider = GetComponent<CapsuleCollider>();
|
||||
_animationController = GetComponent<AnimationController>();
|
||||
|
||||
_iPhysicMovable = GetComponent<IPhysicMovable>();
|
||||
@ -257,9 +261,10 @@ namespace BlueWater.Players.Combat
|
||||
{
|
||||
iDamageable.TakeDamage(ComboAttacks[comboAttackCount - 1].Damage);
|
||||
// TODO : Collider에 따라 잘 안보이는 경우가 있음
|
||||
var closestPoint = hitCollider.ClosestPoint(transform.position);
|
||||
var spawnPosition = _capsuleCollider.bounds.center + targetDirection * 1.5f;
|
||||
//var closestPoint = hitCollider.ClosestPoint(_capsuleCollider.bounds.center);
|
||||
//var spawnPosition = closestPoint + Random.insideUnitSphere * 0.2f;
|
||||
Instantiate(_swordAttackParticle, closestPoint, Quaternion.identity);
|
||||
Instantiate(_swordAttackParticle, spawnPosition, Quaternion.identity);
|
||||
}
|
||||
|
||||
if (comboAttackCount == 2)
|
||||
|
@ -182,6 +182,14 @@ namespace BlueWater.Players.Combat
|
||||
}
|
||||
}
|
||||
|
||||
public void OnHealthPointMax(InputAction.CallbackContext context)
|
||||
{
|
||||
if (context.performed)
|
||||
{
|
||||
GameManager.Instance.CurrentCombatPlayer.SetCurrentHealthPointMax();
|
||||
}
|
||||
}
|
||||
|
||||
public void OnCancel(InputAction.CallbackContext context)
|
||||
{
|
||||
if (context.performed)
|
||||
|
@ -1,5 +1,4 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using Sirenix.OdinInspector;
|
||||
using Spine;
|
||||
using Spine.Unity;
|
||||
@ -15,6 +14,7 @@ namespace BlueWater.Players
|
||||
// Components
|
||||
[SerializeField]
|
||||
private SkeletonAnimation _skeletonAnimation;
|
||||
|
||||
private AnimationState _animationState;
|
||||
|
||||
// Variables
|
||||
|
@ -102,6 +102,7 @@ namespace BlueWater.Maps
|
||||
DestroyAllObjects();
|
||||
|
||||
DataManager.Instance.CurrentSaveStage = SaveStage;
|
||||
CombatUiManager.Instance.FieldBossHealthPointUi.SetActiveHpSlider(false);
|
||||
AudioManager.Instance.StopBgm();
|
||||
CombatUiManager.Instance.FadeInOut(InitializeFadeInOutTime.x, InitializeFadeInOutTime.y,
|
||||
new Color(0f, 0f, 0f, 0f), 1f);
|
||||
|
@ -1,5 +1,7 @@
|
||||
using System.Collections.Generic;
|
||||
using BlueWater.Audios;
|
||||
using BlueWater.Enemies.Bosses;
|
||||
using BlueWater.Uis;
|
||||
using Sirenix.OdinInspector;
|
||||
using UnityEngine;
|
||||
|
||||
@ -160,6 +162,8 @@ namespace BlueWater.Maps
|
||||
if (!GameManager.Instance.CurrentCombatPlayer) return;
|
||||
|
||||
GameManager.Instance.CurrentCombatPlayer.transform.position = PlayerSpawnLocation.position;
|
||||
CombatUiManager.Instance.FieldBossHealthPointUi.SetActiveHpSlider(false);
|
||||
AudioManager.Instance.StopBgm();
|
||||
}
|
||||
|
||||
public abstract void ResetMap(bool isHardReset = false);
|
||||
|
@ -29,20 +29,6 @@ namespace BlueWater.Maps
|
||||
};
|
||||
}
|
||||
|
||||
// public void InitializeMap()
|
||||
// {
|
||||
// if (_currentMapController != null)
|
||||
// {
|
||||
// _currentMapController.AllDestroyObjects();
|
||||
// }
|
||||
//
|
||||
// _currentMapController = GetMapController(DataManager.Instance.CurrentSaveStage);
|
||||
// if (_currentMapController != null)
|
||||
// {
|
||||
// _currentMapController.InitializeMap();
|
||||
// }
|
||||
// }
|
||||
|
||||
public MapController GetMapController(SaveStage saveStage)
|
||||
{
|
||||
switch (saveStage)
|
||||
@ -87,8 +73,7 @@ namespace BlueWater.Maps
|
||||
{
|
||||
_currentMapController.ResetMap();
|
||||
}
|
||||
GameManager.Instance.CurrentCombatPlayer.SetCurrentHealthPointMax();
|
||||
AudioManager.Instance.StopBgm();
|
||||
|
||||
var moveMapController = GetMapController((SaveStage)stage);
|
||||
moveMapController.MovePlayer();
|
||||
}
|
||||
|
@ -783,6 +783,15 @@
|
||||
"interactions": "",
|
||||
"initialStateCheck": false
|
||||
},
|
||||
{
|
||||
"name": "HealthPointMax",
|
||||
"type": "Button",
|
||||
"id": "0dbf1015-499a-43fe-b252-11c232b9a1ae",
|
||||
"expectedControlType": "",
|
||||
"processors": "",
|
||||
"interactions": "",
|
||||
"initialStateCheck": false
|
||||
},
|
||||
{
|
||||
"name": "OpenMenu",
|
||||
"type": "Button",
|
||||
@ -946,6 +955,17 @@
|
||||
"isComposite": false,
|
||||
"isPartOfComposite": false
|
||||
},
|
||||
{
|
||||
"name": "",
|
||||
"id": "e222deb0-5edd-446d-a834-6224ea05eb2e",
|
||||
"path": "<Keyboard>/f3",
|
||||
"interactions": "",
|
||||
"processors": "",
|
||||
"groups": ";Keyboard&Mouse",
|
||||
"action": "HealthPointMax",
|
||||
"isComposite": false,
|
||||
"isPartOfComposite": false
|
||||
},
|
||||
{
|
||||
"name": "",
|
||||
"id": "46591849-5c1e-4b83-b490-0a4ad29ed80f",
|
||||
|
@ -46,14 +46,14 @@ namespace BlueWater.Enemies.Bosses.SandMole.Skills
|
||||
{
|
||||
EnableSkill = false;
|
||||
_spineController.SetSkin(SandMoleSkin.Normal.ToString());
|
||||
var digTrack = _spineController.PlayAnimation(SandMoleAnimation.Dig.ToString(), false);
|
||||
if (digTrack == null || !SkillUser)
|
||||
var digInTrack = _spineController.PlayAnimation(SandMoleAnimation.DigIn.ToString(), false);
|
||||
if (digInTrack == null || !SkillUser)
|
||||
{
|
||||
EndSkill(0, actions[0]);
|
||||
yield break;
|
||||
}
|
||||
|
||||
yield return new WaitUntil(() => digTrack.IsComplete);
|
||||
yield return new WaitUntil(() => digInTrack.IsComplete);
|
||||
|
||||
_userHitBox.enabled = false;
|
||||
_aiMovement.Teleport(_centerSpawnTransform.position);
|
||||
@ -61,14 +61,14 @@ namespace BlueWater.Enemies.Bosses.SandMole.Skills
|
||||
yield return new WaitForSeconds(1f);
|
||||
|
||||
_userHitBox.enabled = true;
|
||||
var reverseDigTrack = _spineController.PlayAnimation(SandMoleAnimation.Dig.ToString(), false, 1f, true);
|
||||
if (reverseDigTrack == null || !SkillUser)
|
||||
var digOutTrack = _spineController.PlayAnimation(SandMoleAnimation.DigOut.ToString(), false);
|
||||
if (digOutTrack == null || !SkillUser)
|
||||
{
|
||||
EndSkill(0, actions[0]);
|
||||
yield break;
|
||||
}
|
||||
|
||||
yield return new WaitUntil(() => reverseDigTrack.TrackTime <= 0f);
|
||||
yield return new WaitUntil(() => digOutTrack.IsComplete);
|
||||
|
||||
_spineController.SetSkin(SandMoleSkin.Idle.ToString());
|
||||
var spinReady2Track = _spineController.PlayAnimation(SandMoleAnimation.SpinReady2.ToString(), false);
|
||||
|
146
Assets/04.Materials/Characters/MiniSandMole.mat
Normal file
146
Assets/04.Materials/Characters/MiniSandMole.mat
Normal file
@ -0,0 +1,146 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 8
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: MiniSandMole
|
||||
m_Shader: {fileID: -6465566751694194690, guid: 25b64c74397178e47a04794eb9a74d8f, type: 3}
|
||||
m_Parent: {fileID: 0}
|
||||
m_ModifiedSerializedProperties: 0
|
||||
m_ValidKeywords: []
|
||||
m_InvalidKeywords: []
|
||||
m_LightmapFlags: 4
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: -1
|
||||
stringTagMap: {}
|
||||
disabledShaderPasses:
|
||||
- MOTIONVECTORS
|
||||
m_LockedProperties:
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _BaseMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _BumpMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailAlbedoMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailMask:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailNormalMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _EmissionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MainTex:
|
||||
m_Texture: {fileID: 2800000, guid: 3c44ede4067bf47479030196a1fc61ec, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MetallicGlossMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _OcclusionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _ParallaxMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _SpecGlossMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- unity_Lightmaps:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- unity_LightmapsInd:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- unity_ShadowMasks:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Ints: []
|
||||
m_Floats:
|
||||
- _AddPrecomputedVelocity: 0
|
||||
- _AlphaClip: 0
|
||||
- _AlphaClipThreshold: 0.2
|
||||
- _AlphaToMask: 0
|
||||
- _Blend: 0
|
||||
- _BlendModePreserveSpecular: 1
|
||||
- _BumpScale: 1
|
||||
- _ClearCoatMask: 0
|
||||
- _ClearCoatSmoothness: 0
|
||||
- _Cull: 2
|
||||
- _Cutoff: 0.5
|
||||
- _DetailAlbedoMapScale: 1
|
||||
- _DetailNormalMapScale: 1
|
||||
- _DissolveValue: 0
|
||||
- _DstBlend: 0
|
||||
- _DstBlendAlpha: 0
|
||||
- _EnvironmentReflections: 1
|
||||
- _GlossMapScale: 0
|
||||
- _Glossiness: 0
|
||||
- _GlossyReflections: 0
|
||||
- _GlowSize: 0.1
|
||||
- _IsHit: 0
|
||||
- _IsSeeThrough: 0
|
||||
- _Metallic: 0
|
||||
- _OcclusionStrength: 1
|
||||
- _Opacity: 0.7
|
||||
- _Parallax: 0.005
|
||||
- _QueueControl: 0
|
||||
- _QueueOffset: 0
|
||||
- _ReceiveShadows: 1
|
||||
- _Size: 0
|
||||
- _Smoothness: 0.8
|
||||
- _SmoothnessTextureChannel: 0
|
||||
- _SpecularHighlights: 1
|
||||
- _SrcBlend: 1
|
||||
- _SrcBlendAlpha: 1
|
||||
- _Surface: 0
|
||||
- _WorkflowMode: 1
|
||||
- _ZWrite: 1
|
||||
m_Colors:
|
||||
- _BaseColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
- _FlashColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _GlowColor: {r: 5.3403134, g: 5.3403134, b: 0, a: 0}
|
||||
- _PlayerPosition: {r: 0.5, g: 0.55, b: 0, a: 0}
|
||||
- _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
|
||||
m_BuildTextureStacks: []
|
||||
m_AllowLocking: 1
|
||||
--- !u!114 &3929801182760292753
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 11
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
version: 9
|
8
Assets/04.Materials/Characters/MiniSandMole.mat.meta
Normal file
8
Assets/04.Materials/Characters/MiniSandMole.mat.meta
Normal file
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 9d32cf8bfac003345a3e86211d6fb83c
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 2100000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -114,7 +114,7 @@ PrefabInstance:
|
||||
- target: {fileID: 3216521486739552858, guid: 5c2f67e75ea578f478f4a2f61f6acfca, type: 3}
|
||||
propertyPath: 'm_Materials.Array.data[0]'
|
||||
value:
|
||||
objectReference: {fileID: 2100000, guid: d9ca9344cd131c049810707093126ca7, type: 2}
|
||||
objectReference: {fileID: 2100000, guid: cd85759cb00b35c4b9d52d8814bf680b, type: 2}
|
||||
- target: {fileID: 4172430046422716170, guid: 5c2f67e75ea578f478f4a2f61f6acfca, type: 3}
|
||||
propertyPath: customMaterialOverrides.Array.size
|
||||
value: 1
|
||||
@ -126,15 +126,23 @@ PrefabInstance:
|
||||
- target: {fileID: 4172430046422716170, guid: 5c2f67e75ea578f478f4a2f61f6acfca, type: 3}
|
||||
propertyPath: customMaterialOverrides.Array.data[0].replacementMaterial
|
||||
value:
|
||||
objectReference: {fileID: 2100000, guid: d9ca9344cd131c049810707093126ca7, type: 2}
|
||||
objectReference: {fileID: 2100000, guid: 9d32cf8bfac003345a3e86211d6fb83c, type: 2}
|
||||
- target: {fileID: 5517970820860260785, guid: 5c2f67e75ea578f478f4a2f61f6acfca, type: 3}
|
||||
propertyPath: _initialSkinName
|
||||
value: Normal
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5517970820860260785, guid: 5c2f67e75ea578f478f4a2f61f6acfca, type: 3}
|
||||
propertyPath: _originalMaterial
|
||||
value:
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5517970820860260785, guid: 5c2f67e75ea578f478f4a2f61f6acfca, type: 3}
|
||||
propertyPath: _skeletonAnimation
|
||||
value:
|
||||
objectReference: {fileID: 8381193314241175309}
|
||||
- target: {fileID: 5517970820860260785, guid: 5c2f67e75ea578f478f4a2f61f6acfca, type: 3}
|
||||
propertyPath: _replacementMaterial
|
||||
value:
|
||||
objectReference: {fileID: 2100000, guid: 9d32cf8bfac003345a3e86211d6fb83c, type: 2}
|
||||
- target: {fileID: 6255916646741457976, guid: 5c2f67e75ea578f478f4a2f61f6acfca, type: 3}
|
||||
propertyPath: m_LocalScale.x
|
||||
value: 2
|
||||
|
@ -114,7 +114,7 @@ PrefabInstance:
|
||||
- target: {fileID: 3216521486739552858, guid: 5c2f67e75ea578f478f4a2f61f6acfca, type: 3}
|
||||
propertyPath: 'm_Materials.Array.data[0]'
|
||||
value:
|
||||
objectReference: {fileID: 2100000, guid: cd85759cb00b35c4b9d52d8814bf680b, type: 2}
|
||||
objectReference: {fileID: 2100000, guid: d9ca9344cd131c049810707093126ca7, type: 2}
|
||||
- target: {fileID: 4172430046422716170, guid: 5c2f67e75ea578f478f4a2f61f6acfca, type: 3}
|
||||
propertyPath: customSlotMaterials.Array.size
|
||||
value: 1
|
||||
@ -139,10 +139,18 @@ PrefabInstance:
|
||||
propertyPath: _initialSkinName
|
||||
value: Normal
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5517970820860260785, guid: 5c2f67e75ea578f478f4a2f61f6acfca, type: 3}
|
||||
propertyPath: _originalMaterial
|
||||
value:
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5517970820860260785, guid: 5c2f67e75ea578f478f4a2f61f6acfca, type: 3}
|
||||
propertyPath: _skeletonAnimation
|
||||
value:
|
||||
objectReference: {fileID: 8381193314241175309}
|
||||
- target: {fileID: 5517970820860260785, guid: 5c2f67e75ea578f478f4a2f61f6acfca, type: 3}
|
||||
propertyPath: _replacementMaterial
|
||||
value:
|
||||
objectReference: {fileID: 2100000, guid: d9ca9344cd131c049810707093126ca7, type: 2}
|
||||
- target: {fileID: 6255916646741457976, guid: 5c2f67e75ea578f478f4a2f61f6acfca, type: 3}
|
||||
propertyPath: m_LocalScale.x
|
||||
value: 5
|
||||
@ -341,7 +349,6 @@ MonoBehaviour:
|
||||
<MeshRenderer>k__BackingField: {fileID: 8739437251540422414}
|
||||
<SpineController>k__BackingField: {fileID: 1835238398239900901}
|
||||
<SandMoleStatus>k__BackingField: {fileID: 4802344397510425122}
|
||||
_summonMiniSandMoles: []
|
||||
--- !u!114 &4802344397510425122
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
|
@ -431,6 +431,22 @@ MonoBehaviour:
|
||||
m_CallState: 2
|
||||
m_ActionId: 2f6cc7b3-e806-4b78-b11f-e6ed70bb67ac
|
||||
m_ActionName: 'Combat/ForceKillBoss[/Keyboard/f2]'
|
||||
- m_PersistentCalls:
|
||||
m_Calls:
|
||||
- m_Target: {fileID: 522031830802304584}
|
||||
m_TargetAssemblyTypeName: BlueWater.Players.Combat.CombatInput, Assembly-CSharp
|
||||
m_MethodName: OnHealthPointMax
|
||||
m_Mode: 0
|
||||
m_Arguments:
|
||||
m_ObjectArgument: {fileID: 0}
|
||||
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
|
||||
m_IntArgument: 0
|
||||
m_FloatArgument: 0
|
||||
m_StringArgument:
|
||||
m_BoolArgument: 0
|
||||
m_CallState: 2
|
||||
m_ActionId: 0dbf1015-499a-43fe-b252-11c232b9a1ae
|
||||
m_ActionName: 'Combat/HealthPointMax[/Keyboard/f3]'
|
||||
m_NeverAutoSwitchControlSchemes: 0
|
||||
m_DefaultControlScheme:
|
||||
m_DefaultActionMap: Combat
|
||||
@ -522,6 +538,7 @@ MonoBehaviour:
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
_rigidbody: {fileID: 1951754024224882079}
|
||||
_capsuleCollider: {fileID: 195447075763637701}
|
||||
_animationController: {fileID: 3889238742570113982}
|
||||
<MaxHitCount>k__BackingField: 10
|
||||
<ComboAttacks>k__BackingField:
|
||||
|
@ -96,11 +96,10 @@ MonoBehaviour:
|
||||
m_EditorClassIdentifier:
|
||||
_rigidbody: {fileID: 5534983560125118465}
|
||||
_sphereCollider: {fileID: 8035217722497169373}
|
||||
_projectilePrefab: {fileID: 1339409385940702124, guid: 54af6d1c262ce644085eb5fcb3bc84e5, type: 3}
|
||||
_projectilePrefab: {fileID: 1339409385940702124, guid: cb0210513f94b074db3d5cdeda82fef1, type: 3}
|
||||
_muzzleParticle: {fileID: 8379670427772074999, guid: 82c2f5f04b06a78449817259830635fe, type: 3}
|
||||
<ImpactParticle>k__BackingField: {fileID: 4957782242376068896, guid: 02c25e70f96b2a34c92ae40dc6e32c35, type: 3}
|
||||
_colliderRadius: 0.25
|
||||
_collideOffset: 0
|
||||
_attackDamage: 1
|
||||
_targetLayer:
|
||||
serializedVersion: 2
|
||||
|
@ -80,7 +80,7 @@ SphereCollider:
|
||||
m_ProvidesContacts: 0
|
||||
m_Enabled: 1
|
||||
serializedVersion: 3
|
||||
m_Radius: 0.25
|
||||
m_Radius: 0.5
|
||||
m_Center: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &1370849024704300366
|
||||
MonoBehaviour:
|
||||
@ -96,11 +96,10 @@ MonoBehaviour:
|
||||
m_EditorClassIdentifier:
|
||||
_rigidbody: {fileID: 5534983560125118465}
|
||||
_sphereCollider: {fileID: 8035217722497169373}
|
||||
_projectilePrefab: {fileID: 1339409385940702124, guid: cb0210513f94b074db3d5cdeda82fef1, type: 3}
|
||||
_projectilePrefab: {fileID: 8140003656796606540, guid: 4365e8e583da1f641a0fe88127be80c3, type: 3}
|
||||
_muzzleParticle: {fileID: 8379670427772074999, guid: 82c2f5f04b06a78449817259830635fe, type: 3}
|
||||
<ImpactParticle>k__BackingField: {fileID: 4957782242376068896, guid: 02c25e70f96b2a34c92ae40dc6e32c35, type: 3}
|
||||
_colliderRadius: 0.25
|
||||
_collideOffset: 0
|
||||
_attackDamage: 1
|
||||
_targetLayer:
|
||||
serializedVersion: 2
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 4365e8e583da1f641a0fe88127be80c3
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
Binary file not shown.
Loading…
Reference in New Issue
Block a user