#134 낚시 성공 이후 이펙트 및 로직 추가 중
+ ItemLootUi 클래스 및 프리팹 생성 + VisualFeedbackManager에서 사용하던 PostProcessing 기능을 OceanCamera로 변경 + OceanUi에 있던 ProcessBar 클래스 따로 생성 + Cannon 공격 로직 변경 ㄴ Boids의 FishSpot과 상호작용으로 변경
This commit is contained in:
parent
35c530ac77
commit
33bf76d018
@ -956,6 +956,41 @@ Transform:
|
|||||||
- {fileID: 44403557}
|
- {fileID: 44403557}
|
||||||
m_Father: {fileID: 357776295}
|
m_Father: {fileID: 357776295}
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!1 &155619292
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 155619293}
|
||||||
|
m_Layer: 5
|
||||||
|
m_Name: ItemsLoot
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &155619293
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 155619292}
|
||||||
|
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||||
|
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_ConstrainProportionsScale: 0
|
||||||
|
m_Children: []
|
||||||
|
m_Father: {fileID: 2105062291}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
m_AnchorMin: {x: 0, y: 0}
|
||||||
|
m_AnchorMax: {x: 1, y: 1}
|
||||||
|
m_AnchoredPosition: {x: 0, y: 0}
|
||||||
|
m_SizeDelta: {x: 0, y: 0}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
--- !u!1 &155713052
|
--- !u!1 &155713052
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@ -3801,7 +3836,6 @@ MonoBehaviour:
|
|||||||
useBoostCameraShaking: 1
|
useBoostCameraShaking: 1
|
||||||
shakingForceCoefficient: 0.8
|
shakingForceCoefficient: 0.8
|
||||||
useBoostVignetteEffect: 1
|
useBoostVignetteEffect: 1
|
||||||
vignetteForceCoefficient: 0.4
|
|
||||||
isBoosting: 0
|
isBoosting: 0
|
||||||
waterLayer:
|
waterLayer:
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
@ -7617,6 +7651,9 @@ MonoBehaviour:
|
|||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
autoInit: 1
|
autoInit: 1
|
||||||
<BaseShipCam>k__BackingField: {fileID: 168896974}
|
<BaseShipCam>k__BackingField: {fileID: 168896974}
|
||||||
|
boostVignetteColor: {r: 0.15686275, g: 0, b: 0, a: 1}
|
||||||
|
boostIntermediateVignetteColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
|
||||||
|
vignetteIntensity: 0.4
|
||||||
--- !u!114 &776161963
|
--- !u!114 &776161963
|
||||||
MonoBehaviour:
|
MonoBehaviour:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@ -8459,7 +8496,6 @@ MonoBehaviour:
|
|||||||
useBoostCameraShaking: 1
|
useBoostCameraShaking: 1
|
||||||
shakingForceCoefficient: 0.8
|
shakingForceCoefficient: 0.8
|
||||||
useBoostVignetteEffect: 1
|
useBoostVignetteEffect: 1
|
||||||
vignetteForceCoefficient: 0.3
|
|
||||||
isBoosting: 0
|
isBoosting: 0
|
||||||
waterLayer:
|
waterLayer:
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
@ -11857,8 +11893,8 @@ Transform:
|
|||||||
m_PrefabAsset: {fileID: 0}
|
m_PrefabAsset: {fileID: 0}
|
||||||
m_GameObject: {fileID: 1485085414}
|
m_GameObject: {fileID: 1485085414}
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
m_LocalRotation: {x: 0.3802523, y: 0.61872363, z: -0.4629525, w: 0.50819707}
|
m_LocalRotation: {x: 0.38025314, y: 0.6187227, z: -0.46295172, w: 0.50819826}
|
||||||
m_LocalPosition: {x: -0.0011863708, y: 0, z: -0.0059661865}
|
m_LocalPosition: {x: -0.0012207031, y: 0, z: -0.006149292}
|
||||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
m_ConstrainProportionsScale: 0
|
m_ConstrainProportionsScale: 0
|
||||||
m_Children:
|
m_Children:
|
||||||
@ -16708,6 +16744,7 @@ RectTransform:
|
|||||||
- {fileID: 480975273}
|
- {fileID: 480975273}
|
||||||
- {fileID: 1446558450}
|
- {fileID: 1446558450}
|
||||||
- {fileID: 2014893525}
|
- {fileID: 2014893525}
|
||||||
|
- {fileID: 155619293}
|
||||||
m_Father: {fileID: 0}
|
m_Father: {fileID: 0}
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
m_AnchorMin: {x: 0, y: 0}
|
m_AnchorMin: {x: 0, y: 0}
|
||||||
@ -16741,16 +16778,13 @@ MonoBehaviour:
|
|||||||
m_Name:
|
m_Name:
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
autoInit: 1
|
autoInit: 1
|
||||||
<ProcessBar>k__BackingField:
|
<ProcessBar>k__BackingField: {fileID: 0}
|
||||||
<Obj>k__BackingField: {fileID: 868726319}
|
|
||||||
<Fill>k__BackingField: {fileID: 271798700}
|
|
||||||
<PreviousGaugeLine>k__BackingField: {fileID: 197341959}
|
|
||||||
<ReloadSlider>k__BackingField: {fileID: 7415601899565865896}
|
|
||||||
<ShakeDuration>k__BackingField: 0.5
|
|
||||||
<ShakePower>k__BackingField: 10
|
|
||||||
processBarOffset: {x: 0, y: 0, z: 0}
|
processBarOffset: {x: 0, y: 0, z: 0}
|
||||||
<ShipBoostSlider>k__BackingField: {fileID: 1446558451}
|
<ShipBoostSlider>k__BackingField: {fileID: 1446558451}
|
||||||
<SpeedLines>k__BackingField: {fileID: 2014893524}
|
<SpeedLines>k__BackingField: {fileID: 2014893524}
|
||||||
|
<ItemLootUi>k__BackingField: {fileID: 8464029479315233580, guid: 0d213e978cd398441bcd61573163ca16,
|
||||||
|
type: 3}
|
||||||
|
itemLootOffset: {x: 0, y: 0}
|
||||||
--- !u!1001 &2114222814
|
--- !u!1001 &2114222814
|
||||||
PrefabInstance:
|
PrefabInstance:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@ -22235,6 +22269,21 @@ PrefabInstance:
|
|||||||
propertyPath: isDirectionChange
|
propertyPath: isDirectionChange
|
||||||
value: 1
|
value: 1
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 6023135201199208214, guid: f228040d76c9217409284544f353da47,
|
||||||
|
type: 3}
|
||||||
|
propertyPath: m_LocalScale.x
|
||||||
|
value: 20
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 6023135201199208214, guid: f228040d76c9217409284544f353da47,
|
||||||
|
type: 3}
|
||||||
|
propertyPath: m_LocalScale.y
|
||||||
|
value: 20
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 6023135201199208214, guid: f228040d76c9217409284544f353da47,
|
||||||
|
type: 3}
|
||||||
|
propertyPath: m_LocalScale.z
|
||||||
|
value: 20
|
||||||
|
objectReference: {fileID: 0}
|
||||||
m_RemovedComponents: []
|
m_RemovedComponents: []
|
||||||
m_RemovedGameObjects: []
|
m_RemovedGameObjects: []
|
||||||
m_AddedGameObjects: []
|
m_AddedGameObjects: []
|
||||||
|
@ -29,16 +29,16 @@ MonoBehaviour:
|
|||||||
active: 1
|
active: 1
|
||||||
color:
|
color:
|
||||||
m_OverrideState: 1
|
m_OverrideState: 1
|
||||||
m_Value: {r: 0.262, g: 0, b: 0, a: 1}
|
m_Value: {r: 0.20745817, g: 0.6981132, b: 0.6667745, a: 1}
|
||||||
center:
|
center:
|
||||||
m_OverrideState: 1
|
m_OverrideState: 1
|
||||||
m_Value: {x: 0.5, y: 0.5}
|
m_Value: {x: 0.5, y: 0.5}
|
||||||
intensity:
|
intensity:
|
||||||
m_OverrideState: 1
|
m_OverrideState: 1
|
||||||
m_Value: 0
|
m_Value: 0.3
|
||||||
smoothness:
|
smoothness:
|
||||||
m_OverrideState: 1
|
m_OverrideState: 1
|
||||||
m_Value: 1
|
m_Value: 0.36
|
||||||
rounded:
|
rounded:
|
||||||
m_OverrideState: 1
|
m_OverrideState: 1
|
||||||
m_Value: 1
|
m_Value: 1
|
||||||
|
@ -3,7 +3,6 @@ using System.Collections;
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using Sirenix.OdinInspector;
|
using Sirenix.OdinInspector;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using UnityEngine.Serialization;
|
|
||||||
using Random = UnityEngine.Random;
|
using Random = UnityEngine.Random;
|
||||||
|
|
||||||
// ReSharper disable once CheckNamespace
|
// ReSharper disable once CheckNamespace
|
||||||
|
@ -73,8 +73,6 @@ namespace BlueWaterProject
|
|||||||
[SerializeField] private float shakingForceCoefficient = 0.8f;
|
[SerializeField] private float shakingForceCoefficient = 0.8f;
|
||||||
|
|
||||||
[SerializeField] private bool useBoostVignetteEffect = true;
|
[SerializeField] private bool useBoostVignetteEffect = true;
|
||||||
[ShowIf("@useBoostVignetteEffect")]
|
|
||||||
[SerializeField] private float vignetteForceCoefficient = 0.4f;
|
|
||||||
|
|
||||||
[DisableIf("@true")]
|
[DisableIf("@true")]
|
||||||
[SerializeField] private bool isBoosting;
|
[SerializeField] private bool isBoosting;
|
||||||
@ -232,7 +230,7 @@ namespace BlueWaterProject
|
|||||||
|
|
||||||
if (useBoostVignetteEffect && UiManager.Inst.OceanUi.ShipBoostSlider.value > 0f)
|
if (useBoostVignetteEffect && UiManager.Inst.OceanUi.ShipBoostSlider.value > 0f)
|
||||||
{
|
{
|
||||||
VisualFeedbackManager.Inst.SetVignetteIntensity(UiManager.Inst.OceanUi.ShipBoostSlider.value * vignetteForceCoefficient);
|
CameraManager.Inst.OceanCamera.BoostVignette(UiManager.Inst.OceanUi.ShipBoostSlider.value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -405,10 +403,6 @@ namespace BlueWaterProject
|
|||||||
{
|
{
|
||||||
CameraManager.Inst.OceanCamera.ChangeDistance(shrinkDistance, shrinkTime);
|
CameraManager.Inst.OceanCamera.ChangeDistance(shrinkDistance, shrinkTime);
|
||||||
}
|
}
|
||||||
if (useBoostVignetteEffect)
|
|
||||||
{
|
|
||||||
VisualFeedbackManager.Inst.ToggleEffect<Vignette>(true);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void ShipStopBoost()
|
private void ShipStopBoost()
|
||||||
|
@ -3,6 +3,8 @@ using System.Collections.Generic;
|
|||||||
using Cinemachine;
|
using Cinemachine;
|
||||||
using Sirenix.OdinInspector;
|
using Sirenix.OdinInspector;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
using UnityEngine.Rendering;
|
||||||
|
using UnityEngine.Rendering.Universal;
|
||||||
|
|
||||||
// ReSharper disable once CheckNamespace
|
// ReSharper disable once CheckNamespace
|
||||||
namespace BlueWaterProject
|
namespace BlueWaterProject
|
||||||
@ -15,6 +17,15 @@ namespace BlueWaterProject
|
|||||||
[field: Title("카메라")]
|
[field: Title("카메라")]
|
||||||
[field: SerializeField] public CinemachineVirtualCamera BaseShipCam { get; private set; }
|
[field: SerializeField] public CinemachineVirtualCamera BaseShipCam { get; private set; }
|
||||||
|
|
||||||
|
[Title("포스트 프로세싱")]
|
||||||
|
[SerializeField] private Color boostVignetteColor = Color.red;
|
||||||
|
[SerializeField] private Color boostIntermediateVignetteColor = Color.gray;
|
||||||
|
[Range(0f, 4f)]
|
||||||
|
[SerializeField] private float vignetteIntensity = 0.4f;
|
||||||
|
private Vignette vignette;
|
||||||
|
private Color defaultVignetteColor;
|
||||||
|
private float defaultVignetteIntensity;
|
||||||
|
|
||||||
private List<CinemachineVirtualCamera> cineCamList;
|
private List<CinemachineVirtualCamera> cineCamList;
|
||||||
private GameObject cineCams;
|
private GameObject cineCams;
|
||||||
private CinemachineFramingTransposer framingTransposer;
|
private CinemachineFramingTransposer framingTransposer;
|
||||||
@ -33,6 +44,13 @@ namespace BlueWaterProject
|
|||||||
|
|
||||||
CameraManager.Inst.OceanCamera = this;
|
CameraManager.Inst.OceanCamera = this;
|
||||||
CameraManager.Inst.MainCam = Camera.main;
|
CameraManager.Inst.MainCam = Camera.main;
|
||||||
|
|
||||||
|
vignette = GetEffect<Vignette>();
|
||||||
|
if (vignette)
|
||||||
|
{
|
||||||
|
defaultVignetteColor = vignette.color.value;
|
||||||
|
defaultVignetteIntensity = vignette.intensity.value;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
[Button("셋팅 초기화")]
|
[Button("셋팅 초기화")]
|
||||||
@ -114,5 +132,45 @@ namespace BlueWaterProject
|
|||||||
framingTransposer.m_CameraDistance = defaultDistance;
|
framingTransposer.m_CameraDistance = defaultDistance;
|
||||||
yield return null;
|
yield return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#region PostProcessing
|
||||||
|
|
||||||
|
public void ToggleEffect<T>(bool value) where T : VolumeComponent
|
||||||
|
{
|
||||||
|
var effect = GetEffect<T>();
|
||||||
|
if (effect == null)
|
||||||
|
{
|
||||||
|
print(typeof(T) + "효과가 없습니다.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
effect.active = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
private T GetEffect<T>() where T : VolumeComponent
|
||||||
|
{
|
||||||
|
var postProcessVolume = FindAnyObjectByType<Volume>();
|
||||||
|
if (postProcessVolume == null)
|
||||||
|
{
|
||||||
|
print("Volume 컴포넌트를 가진 오브젝트가 없습니다.");
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
postProcessVolume.profile.TryGet(out T effect);
|
||||||
|
return effect;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void BoostVignette(float boostGauge)
|
||||||
|
{
|
||||||
|
if (boostGauge <= 0.3f)
|
||||||
|
{
|
||||||
|
vignette.color.value = Color.Lerp(defaultVignetteColor, boostIntermediateVignetteColor, boostGauge / 0.3f);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
vignette.color.value = Color.Lerp(boostIntermediateVignetteColor, boostVignetteColor, (boostGauge - 0.3f) / 0.7f);
|
||||||
|
vignette.intensity.value = Mathf.Lerp(defaultVignetteIntensity, vignetteIntensity, (boostGauge - 0.3f) / 0.7f);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -1,77 +1,10 @@
|
|||||||
using System;
|
|
||||||
using System.Collections;
|
|
||||||
using Sirenix.OdinInspector;
|
using Sirenix.OdinInspector;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using UnityEngine.UI;
|
using UnityEngine.UI;
|
||||||
using Random = UnityEngine.Random;
|
|
||||||
|
|
||||||
// ReSharper disable once CheckNamespace
|
// ReSharper disable once CheckNamespace
|
||||||
namespace BlueWaterProject
|
namespace BlueWaterProject
|
||||||
{
|
{
|
||||||
#region ProcessBar Class
|
|
||||||
|
|
||||||
[Serializable]
|
|
||||||
public class ProcessBar
|
|
||||||
{
|
|
||||||
[field: SerializeField] public GameObject Obj { get; set; }
|
|
||||||
[field: SerializeField] public Image Fill { get; set; }
|
|
||||||
[field: SerializeField] public Transform PreviousGaugeLine { get; set; }
|
|
||||||
[field: SerializeField] public Slider ReloadSlider { get; set; }
|
|
||||||
[field: SerializeField] public float ShakeDuration { get; set; } = 0.5f;
|
|
||||||
[field: SerializeField] public float ShakePower { get; set; } = 10f;
|
|
||||||
|
|
||||||
private AudioSource reloadingAttackSound;
|
|
||||||
private bool isShaking;
|
|
||||||
|
|
||||||
public ProcessBar(GameObject obj, Image fill, Transform previousGaugeLine, Slider reloadSlider)
|
|
||||||
{
|
|
||||||
Obj = obj;
|
|
||||||
Fill = fill;
|
|
||||||
PreviousGaugeLine = previousGaugeLine;
|
|
||||||
ReloadSlider = reloadSlider;
|
|
||||||
|
|
||||||
reloadingAttackSound = ReloadSlider.GetComponent<AudioSource>();
|
|
||||||
|
|
||||||
SetFillAmount(0f);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void SetActive(bool value) => Obj.SetActive(value);
|
|
||||||
public void SetPosition(Vector3 value) => Obj.transform.position = value;
|
|
||||||
public void SetFillAmount(float value) => Fill.fillAmount = value;
|
|
||||||
public void SetRotateZ(float value) => PreviousGaugeLine.rotation = Quaternion.Euler(0f, 0f, value);
|
|
||||||
public void SetActiveReloadSlider(bool value) => ReloadSlider.gameObject.SetActive(value);
|
|
||||||
public void SetSliderValue(float value) => ReloadSlider.value = value;
|
|
||||||
public IEnumerator ShakeProcessBarCoroutine()
|
|
||||||
{
|
|
||||||
if (isShaking) yield break;
|
|
||||||
|
|
||||||
isShaking = true;
|
|
||||||
reloadingAttackSound.Play();
|
|
||||||
var time = 0f;
|
|
||||||
var processBarOriginalPos = Obj.transform.localPosition;
|
|
||||||
|
|
||||||
while (time < ShakeDuration)
|
|
||||||
{
|
|
||||||
if (!Obj.gameObject.activeSelf)
|
|
||||||
{
|
|
||||||
Obj.transform.localPosition = processBarOriginalPos;
|
|
||||||
isShaking = false;
|
|
||||||
yield break;
|
|
||||||
}
|
|
||||||
|
|
||||||
time += Time.deltaTime;
|
|
||||||
var shakeAmount = Random.Range(-1f, 1f) * ShakePower;
|
|
||||||
var processBarLocalPos = Obj.transform.localPosition;
|
|
||||||
Obj.transform.localPosition = new Vector3(processBarLocalPos.x + shakeAmount, processBarLocalPos.y, processBarLocalPos.z);
|
|
||||||
yield return null;
|
|
||||||
}
|
|
||||||
Obj.transform.localPosition = processBarOriginalPos;
|
|
||||||
isShaking = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
public class OceanUi : MonoBehaviour
|
public class OceanUi : MonoBehaviour
|
||||||
{
|
{
|
||||||
[Title("초기화 방식")]
|
[Title("초기화 방식")]
|
||||||
@ -85,7 +18,12 @@ namespace BlueWaterProject
|
|||||||
|
|
||||||
[field: SerializeField] public GameObject SpeedLines { get; set; }
|
[field: SerializeField] public GameObject SpeedLines { get; set; }
|
||||||
|
|
||||||
|
[field: SerializeField] public ItemLootUi ItemLootUi { get; set; }
|
||||||
|
[SerializeField] private Vector2 itemLootOffset;
|
||||||
|
|
||||||
private Canvas canvas;
|
private Canvas canvas;
|
||||||
|
private RectTransform canvasRectTransform;
|
||||||
|
private Transform itemsLoot;
|
||||||
|
|
||||||
[Button("셋팅 초기화")]
|
[Button("셋팅 초기화")]
|
||||||
private void Init()
|
private void Init()
|
||||||
@ -96,6 +34,7 @@ namespace BlueWaterProject
|
|||||||
Debug.LogError("canvas is null error");
|
Debug.LogError("canvas is null error");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
canvasRectTransform = canvas.GetComponent<RectTransform>();
|
||||||
|
|
||||||
var processBar = canvas.transform.Find("ProcessBar").gameObject;
|
var processBar = canvas.transform.Find("ProcessBar").gameObject;
|
||||||
var fill = processBar.transform.Find("Fill").GetComponent<Image>();
|
var fill = processBar.transform.Find("Fill").GetComponent<Image>();
|
||||||
@ -109,6 +48,8 @@ namespace BlueWaterProject
|
|||||||
|
|
||||||
SpeedLines = canvas.transform.Find("SpeedLines").gameObject;
|
SpeedLines = canvas.transform.Find("SpeedLines").gameObject;
|
||||||
SpeedLines.SetActive(false);
|
SpeedLines.SetActive(false);
|
||||||
|
|
||||||
|
itemsLoot = canvas.transform.Find("ItemsLoot");
|
||||||
}
|
}
|
||||||
|
|
||||||
private void Awake()
|
private void Awake()
|
||||||
@ -132,6 +73,13 @@ namespace BlueWaterProject
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void CreateItemLootUi(Vector3 lootPos, Sprite sprite = null)
|
||||||
|
{
|
||||||
|
var screenPos = CameraManager.Inst.MainCam.WorldToScreenPoint(lootPos);
|
||||||
|
var itemLootUi = Instantiate(ItemLootUi, screenPos, Quaternion.identity, itemsLoot);
|
||||||
|
itemLootUi.Init(lootPos);
|
||||||
|
}
|
||||||
|
|
||||||
public void SetActiveSpeedLine(bool value) => SpeedLines.SetActive(value);
|
public void SetActiveSpeedLine(bool value) => SpeedLines.SetActive(value);
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -26,6 +26,7 @@ namespace BlueWaterProject
|
|||||||
|
|
||||||
private float cannonRadius;
|
private float cannonRadius;
|
||||||
private LayerMask boidsLayer;
|
private LayerMask boidsLayer;
|
||||||
|
private Collider[] hitColliders = new Collider[3];
|
||||||
|
|
||||||
private void Awake()
|
private void Awake()
|
||||||
{
|
{
|
||||||
@ -54,7 +55,6 @@ namespace BlueWaterProject
|
|||||||
var projectile = Instantiate(projectileObj, firePos.position, Quaternion.Euler(firePosRotation));
|
var projectile = Instantiate(projectileObj, firePos.position, Quaternion.Euler(firePosRotation));
|
||||||
var particleWeapon = projectile.GetComponent<ParticleWeapon>();
|
var particleWeapon = projectile.GetComponent<ParticleWeapon>();
|
||||||
particleWeapon.onHitAction.AddListener(HandleCannonHit);
|
particleWeapon.onHitAction.AddListener(HandleCannonHit);
|
||||||
//projectile.GetComponent<Rigidbody>().AddForce(projectile.transform.forward * (chargingGauge * speed));
|
|
||||||
projectile.GetComponent<Rigidbody>().velocity = projectile.transform.forward * speed;
|
projectile.GetComponent<Rigidbody>().velocity = projectile.transform.forward * speed;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -62,22 +62,25 @@ namespace BlueWaterProject
|
|||||||
{
|
{
|
||||||
if (hit.collider.gameObject.layer == LayerMask.NameToLayer("Water"))
|
if (hit.collider.gameObject.layer == LayerMask.NameToLayer("Water"))
|
||||||
{
|
{
|
||||||
var start = hit.point;
|
var maxSize = Physics.OverlapSphereNonAlloc(hit.point, cannonRadius, hitColliders, boidsLayer,
|
||||||
var direction = Vector3.down;
|
QueryTriggerInteraction.Collide);
|
||||||
var radius = cannonRadius;
|
|
||||||
var maxDistance = height;
|
|
||||||
|
|
||||||
if (Physics.SphereCast(start, radius, direction, out var hitInfo, maxDistance,
|
|
||||||
boidsLayer, QueryTriggerInteraction.Collide))
|
|
||||||
{
|
|
||||||
Debug.DrawRay(start, direction * height, Color.green, 3f);
|
|
||||||
|
|
||||||
var hitBoids = hitInfo.collider.GetComponentInParent<Boids>();
|
for (var i = 0; i < maxSize; i++)
|
||||||
hitBoids.CatchBoid(Random.Range((int)randomCatch.x, (int)randomCatch.y));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
{
|
||||||
Debug.DrawRay(start, direction * height, Color.red, 3f);
|
var hitBoids = hitColliders[i].GetComponentInParent<Boids>();
|
||||||
|
var catchSize = Random.Range((int)randomCatch.x, (int)randomCatch.y);
|
||||||
|
hitBoids.CatchBoid(catchSize);
|
||||||
|
|
||||||
|
for (var j = 0; j < catchSize; j++)
|
||||||
|
{
|
||||||
|
var bounds = hitColliders[i].bounds;
|
||||||
|
var x = Random.Range(bounds.min.x, bounds.max.x);
|
||||||
|
//var y = Random.Range(bounds.min.y, bounds.max.y);
|
||||||
|
var z = Random.Range(bounds.min.z, bounds.max.z);
|
||||||
|
var randomPos = new Vector3(x, 0, z);
|
||||||
|
|
||||||
|
UiManager.Inst.OceanUi.CreateItemLootUi(randomPos);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
45
BlueWater/Assets/02.Scripts/Ui/ItemLootUi.cs
Normal file
45
BlueWater/Assets/02.Scripts/Ui/ItemLootUi.cs
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
using System;
|
||||||
|
using Sirenix.OdinInspector;
|
||||||
|
using UnityEngine;
|
||||||
|
using UnityEngine.UI;
|
||||||
|
|
||||||
|
// ReSharper disable once CheckNamespace
|
||||||
|
namespace BlueWaterProject
|
||||||
|
{
|
||||||
|
public class ItemLootUi : MonoBehaviour
|
||||||
|
{
|
||||||
|
[SerializeField] private RectTransform rectTransform;
|
||||||
|
[SerializeField] private Image border;
|
||||||
|
[SerializeField] private Image icon;
|
||||||
|
[SerializeField] private RectTransform line;
|
||||||
|
|
||||||
|
[SerializeField] private bool useAutoDestroy = true;
|
||||||
|
[ShowIf("@useAutoDestroy")]
|
||||||
|
[SerializeField] private float autoDestroyTime = 10f;
|
||||||
|
|
||||||
|
private Vector3 lootWorldPos;
|
||||||
|
|
||||||
|
public void Init(Vector3 value, Sprite sprite = null)
|
||||||
|
{
|
||||||
|
lootWorldPos = value;
|
||||||
|
if (sprite)
|
||||||
|
{
|
||||||
|
icon.sprite = sprite;
|
||||||
|
}
|
||||||
|
gameObject.SetActive(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void Start()
|
||||||
|
{
|
||||||
|
if (useAutoDestroy)
|
||||||
|
{
|
||||||
|
Destroy(gameObject, autoDestroyTime);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void Update()
|
||||||
|
{
|
||||||
|
rectTransform.position = CameraManager.Inst.MainCam.WorldToScreenPoint(lootWorldPos);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
2
BlueWater/Assets/02.Scripts/Ui/ItemLootUi.cs.meta
Normal file
2
BlueWater/Assets/02.Scripts/Ui/ItemLootUi.cs.meta
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 3f8bfea5b12b9674dabae714608eb764
|
69
BlueWater/Assets/02.Scripts/Ui/ProcessBar.cs
Normal file
69
BlueWater/Assets/02.Scripts/Ui/ProcessBar.cs
Normal file
@ -0,0 +1,69 @@
|
|||||||
|
using System.Collections;
|
||||||
|
using UnityEngine;
|
||||||
|
using UnityEngine.UI;
|
||||||
|
|
||||||
|
// ReSharper disable once CheckNamespace
|
||||||
|
namespace BlueWaterProject
|
||||||
|
{
|
||||||
|
public class ProcessBar : MonoBehaviour
|
||||||
|
{
|
||||||
|
[field: SerializeField] public GameObject Obj { get; set; }
|
||||||
|
[field: SerializeField] public Image Fill { get; set; }
|
||||||
|
[field: SerializeField] public Transform PreviousGaugeLine { get; set; }
|
||||||
|
[field: SerializeField] public Slider ReloadSlider { get; set; }
|
||||||
|
[field: SerializeField] public float ShakeDuration { get; set; } = 0.5f;
|
||||||
|
[field: SerializeField] public float ShakePower { get; set; } = 10f;
|
||||||
|
|
||||||
|
private AudioSource reloadingAttackSound;
|
||||||
|
private bool isShaking;
|
||||||
|
|
||||||
|
public ProcessBar(GameObject obj, Image fill, Transform previousGaugeLine, Slider reloadSlider)
|
||||||
|
{
|
||||||
|
Obj = obj;
|
||||||
|
Fill = fill;
|
||||||
|
PreviousGaugeLine = previousGaugeLine;
|
||||||
|
ReloadSlider = reloadSlider;
|
||||||
|
|
||||||
|
reloadingAttackSound = ReloadSlider.GetComponent<AudioSource>();
|
||||||
|
|
||||||
|
SetFillAmount(0f);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SetActive(bool value) => Obj.SetActive(value);
|
||||||
|
public void SetPosition(Vector3 value) => Obj.transform.position = value;
|
||||||
|
public void SetFillAmount(float value) => Fill.fillAmount = value;
|
||||||
|
public void SetRotateZ(float value) => PreviousGaugeLine.rotation = Quaternion.Euler(0f, 0f, value);
|
||||||
|
public void SetActiveReloadSlider(bool value) => ReloadSlider.gameObject.SetActive(value);
|
||||||
|
public void SetSliderValue(float value) => ReloadSlider.value = value;
|
||||||
|
|
||||||
|
public IEnumerator ShakeProcessBarCoroutine()
|
||||||
|
{
|
||||||
|
if (isShaking) yield break;
|
||||||
|
|
||||||
|
isShaking = true;
|
||||||
|
reloadingAttackSound.Play();
|
||||||
|
var time = 0f;
|
||||||
|
var processBarOriginalPos = Obj.transform.localPosition;
|
||||||
|
|
||||||
|
while (time < ShakeDuration)
|
||||||
|
{
|
||||||
|
if (!Obj.gameObject.activeSelf)
|
||||||
|
{
|
||||||
|
Obj.transform.localPosition = processBarOriginalPos;
|
||||||
|
isShaking = false;
|
||||||
|
yield break;
|
||||||
|
}
|
||||||
|
|
||||||
|
time += Time.deltaTime;
|
||||||
|
var shakeAmount = Random.Range(-1f, 1f) * ShakePower;
|
||||||
|
var processBarLocalPos = Obj.transform.localPosition;
|
||||||
|
Obj.transform.localPosition = new Vector3(processBarLocalPos.x + shakeAmount, processBarLocalPos.y,
|
||||||
|
processBarLocalPos.z);
|
||||||
|
yield return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
Obj.transform.localPosition = processBarOriginalPos;
|
||||||
|
isShaking = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
2
BlueWater/Assets/02.Scripts/Ui/ProcessBar.cs.meta
Normal file
2
BlueWater/Assets/02.Scripts/Ui/ProcessBar.cs.meta
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: f86fa54994439bd4682548d17f8ebdbd
|
@ -1,37 +1,14 @@
|
|||||||
using System;
|
|
||||||
using System.Collections;
|
using System.Collections;
|
||||||
using Cinemachine;
|
using Cinemachine;
|
||||||
using MoreMountains.Feedbacks;
|
using MoreMountains.Feedbacks;
|
||||||
using MoreMountains.FeedbacksForThirdParty;
|
using MoreMountains.FeedbacksForThirdParty;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using UnityEngine.Rendering;
|
|
||||||
using UnityEngine.Rendering.Universal;
|
|
||||||
using UnityEngine.SceneManagement;
|
|
||||||
|
|
||||||
// ReSharper disable once CheckNamespace
|
// ReSharper disable once CheckNamespace
|
||||||
namespace BlueWaterProject
|
namespace BlueWaterProject
|
||||||
{
|
{
|
||||||
public class VisualFeedbackManager : Singleton<VisualFeedbackManager>
|
public class VisualFeedbackManager : Singleton<VisualFeedbackManager>
|
||||||
{
|
{
|
||||||
private Vignette vignette;
|
|
||||||
|
|
||||||
private void OnEnable()
|
|
||||||
{
|
|
||||||
SceneManager.sceneLoaded += OnSceneLoaded;
|
|
||||||
}
|
|
||||||
|
|
||||||
private void OnDisable()
|
|
||||||
{
|
|
||||||
SceneManager.sceneLoaded -= OnSceneLoaded;
|
|
||||||
}
|
|
||||||
|
|
||||||
private void OnSceneLoaded(Scene scene, LoadSceneMode mode)
|
|
||||||
{
|
|
||||||
vignette = null;
|
|
||||||
|
|
||||||
vignette = GetEffect<Vignette>();
|
|
||||||
}
|
|
||||||
|
|
||||||
#region HitStop
|
#region HitStop
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -71,50 +48,6 @@ namespace BlueWaterProject
|
|||||||
mmfPlayer.PlayFeedbacks();
|
mmfPlayer.PlayFeedbacks();
|
||||||
}
|
}
|
||||||
|
|
||||||
#region PostProcessing
|
|
||||||
|
|
||||||
public void ToggleEffect<T>(bool value) where T : VolumeComponent
|
|
||||||
{
|
|
||||||
var effect = GetEffect<T>();
|
|
||||||
if (effect == null)
|
|
||||||
{
|
|
||||||
print(typeof(T) + "효과가 없습니다.");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
effect.active = value;
|
|
||||||
}
|
|
||||||
|
|
||||||
private T GetEffect<T>() where T : VolumeComponent
|
|
||||||
{
|
|
||||||
var postProcessVolume = FindAnyObjectByType<Volume>();
|
|
||||||
if (postProcessVolume == null)
|
|
||||||
{
|
|
||||||
print("Volume 컴포넌트를 가진 오브젝트가 없습니다.");
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
postProcessVolume.profile.TryGet(out T effect);
|
|
||||||
return effect;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void SetVignetteIntensity(float intensity)
|
|
||||||
{
|
|
||||||
if (vignette == null)
|
|
||||||
{
|
|
||||||
vignette = GetEffect<Vignette>();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (vignette != null)
|
|
||||||
{
|
|
||||||
vignette.intensity.value = intensity;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
print("vignette is null.");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -11,8 +11,7 @@ GameObject:
|
|||||||
- component: {fileID: 2854089398056668840}
|
- component: {fileID: 2854089398056668840}
|
||||||
- component: {fileID: 3243186087995758770}
|
- component: {fileID: 3243186087995758770}
|
||||||
- component: {fileID: 2486807546603369919}
|
- component: {fileID: 2486807546603369919}
|
||||||
- component: {fileID: 5287364424603291167}
|
m_Layer: 0
|
||||||
m_Layer: 15
|
|
||||||
m_Name: Bounds
|
m_Name: Bounds
|
||||||
m_TagString: Untagged
|
m_TagString: Untagged
|
||||||
m_Icon: {fileID: 0}
|
m_Icon: {fileID: 0}
|
||||||
@ -86,27 +85,6 @@ MeshRenderer:
|
|||||||
m_SortingLayer: 0
|
m_SortingLayer: 0
|
||||||
m_SortingOrder: 0
|
m_SortingOrder: 0
|
||||||
m_AdditionalVertexStreams: {fileID: 0}
|
m_AdditionalVertexStreams: {fileID: 0}
|
||||||
--- !u!65 &5287364424603291167
|
|
||||||
BoxCollider:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 2441661978531314766}
|
|
||||||
m_Material: {fileID: 0}
|
|
||||||
m_IncludeLayers:
|
|
||||||
serializedVersion: 2
|
|
||||||
m_Bits: 0
|
|
||||||
m_ExcludeLayers:
|
|
||||||
serializedVersion: 2
|
|
||||||
m_Bits: 0
|
|
||||||
m_LayerOverridePriority: 0
|
|
||||||
m_IsTrigger: 1
|
|
||||||
m_ProvidesContacts: 0
|
|
||||||
m_Enabled: 1
|
|
||||||
serializedVersion: 3
|
|
||||||
m_Size: {x: 1, y: 1, z: 1}
|
|
||||||
m_Center: {x: 0, y: 0, z: 0}
|
|
||||||
--- !u!1 &4541625270423798677
|
--- !u!1 &4541625270423798677
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@ -265,11 +243,47 @@ PrefabInstance:
|
|||||||
propertyPath: m_Name
|
propertyPath: m_Name
|
||||||
value: FishSpot
|
value: FishSpot
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 5897493926044192973, guid: 0051ffdc4c5db0d439d5d2c880040228,
|
||||||
|
type: 3}
|
||||||
|
propertyPath: m_Layer
|
||||||
|
value: 15
|
||||||
|
objectReference: {fileID: 0}
|
||||||
m_RemovedComponents: []
|
m_RemovedComponents: []
|
||||||
m_RemovedGameObjects: []
|
m_RemovedGameObjects: []
|
||||||
m_AddedGameObjects: []
|
m_AddedGameObjects: []
|
||||||
m_AddedComponents: []
|
m_AddedComponents:
|
||||||
|
- targetCorrespondingSourceObject: {fileID: 5897493926044192973, guid: 0051ffdc4c5db0d439d5d2c880040228,
|
||||||
|
type: 3}
|
||||||
|
insertIndex: -1
|
||||||
|
addedObject: {fileID: 2919496038212792137}
|
||||||
m_SourcePrefab: {fileID: 100100000, guid: 0051ffdc4c5db0d439d5d2c880040228, type: 3}
|
m_SourcePrefab: {fileID: 100100000, guid: 0051ffdc4c5db0d439d5d2c880040228, type: 3}
|
||||||
|
--- !u!1 &2873048866372186192 stripped
|
||||||
|
GameObject:
|
||||||
|
m_CorrespondingSourceObject: {fileID: 5897493926044192973, guid: 0051ffdc4c5db0d439d5d2c880040228,
|
||||||
|
type: 3}
|
||||||
|
m_PrefabInstance: {fileID: 8504772753982791837}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
--- !u!65 &2919496038212792137
|
||||||
|
BoxCollider:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 2873048866372186192}
|
||||||
|
m_Material: {fileID: 0}
|
||||||
|
m_IncludeLayers:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 0
|
||||||
|
m_ExcludeLayers:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 0
|
||||||
|
m_LayerOverridePriority: 0
|
||||||
|
m_IsTrigger: 1
|
||||||
|
m_ProvidesContacts: 0
|
||||||
|
m_Enabled: 1
|
||||||
|
serializedVersion: 3
|
||||||
|
m_Size: {x: 0.5, y: 0.2, z: 0.5}
|
||||||
|
m_Center: {x: 0, y: 0, z: 0}
|
||||||
--- !u!4 &6023135201199208214 stripped
|
--- !u!4 &6023135201199208214 stripped
|
||||||
Transform:
|
Transform:
|
||||||
m_CorrespondingSourceObject: {fileID: 2707081533079000971, guid: 0051ffdc4c5db0d439d5d2c880040228,
|
m_CorrespondingSourceObject: {fileID: 2707081533079000971, guid: 0051ffdc4c5db0d439d5d2c880040228,
|
||||||
|
428
BlueWater/Assets/05.Prefabs/Ui/ItemLootUi.prefab
Normal file
428
BlueWater/Assets/05.Prefabs/Ui/ItemLootUi.prefab
Normal file
@ -0,0 +1,428 @@
|
|||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!1 &462042136712330508
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 3178920409736748321}
|
||||||
|
- component: {fileID: 6178358912228675412}
|
||||||
|
- component: {fileID: 56263909834790550}
|
||||||
|
m_Layer: 5
|
||||||
|
m_Name: Icon
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &3178920409736748321
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 462042136712330508}
|
||||||
|
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||||
|
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_ConstrainProportionsScale: 0
|
||||||
|
m_Children: []
|
||||||
|
m_Father: {fileID: 3090447943159425445}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
m_AnchorMin: {x: 0, y: 0}
|
||||||
|
m_AnchorMax: {x: 1, y: 1}
|
||||||
|
m_AnchoredPosition: {x: 0, y: 0}
|
||||||
|
m_SizeDelta: {x: -60, y: -60}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!222 &6178358912228675412
|
||||||
|
CanvasRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 462042136712330508}
|
||||||
|
m_CullTransparentMesh: 0
|
||||||
|
--- !u!114 &56263909834790550
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 462042136712330508}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
m_Material: {fileID: 0}
|
||||||
|
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_RaycastTarget: 1
|
||||||
|
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
m_Maskable: 1
|
||||||
|
m_OnCullStateChanged:
|
||||||
|
m_PersistentCalls:
|
||||||
|
m_Calls: []
|
||||||
|
m_Sprite: {fileID: 21300000, guid: 2cc86e3da070349219ca804ef98cfaba, type: 3}
|
||||||
|
m_Type: 0
|
||||||
|
m_PreserveAspect: 1
|
||||||
|
m_FillCenter: 1
|
||||||
|
m_FillMethod: 4
|
||||||
|
m_FillAmount: 1
|
||||||
|
m_FillClockwise: 1
|
||||||
|
m_FillOrigin: 0
|
||||||
|
m_UseSpriteMesh: 0
|
||||||
|
m_PixelsPerUnitMultiplier: 1
|
||||||
|
--- !u!1 &642597180042958460
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 1536933552086327455}
|
||||||
|
- component: {fileID: 8105446773979611040}
|
||||||
|
- component: {fileID: 5424528542303089367}
|
||||||
|
- component: {fileID: 842783453021988367}
|
||||||
|
m_Layer: 5
|
||||||
|
m_Name: Line
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &1536933552086327455
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 642597180042958460}
|
||||||
|
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||||
|
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_ConstrainProportionsScale: 0
|
||||||
|
m_Children: []
|
||||||
|
m_Father: {fileID: 3090447943159425445}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
m_AnchorMin: {x: 0.5, y: 0}
|
||||||
|
m_AnchorMax: {x: 0.5, y: 0}
|
||||||
|
m_AnchoredPosition: {x: 0, y: -45}
|
||||||
|
m_SizeDelta: {x: 2, y: 100}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!222 &8105446773979611040
|
||||||
|
CanvasRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 642597180042958460}
|
||||||
|
m_CullTransparentMesh: 0
|
||||||
|
--- !u!114 &5424528542303089367
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 642597180042958460}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
m_Material: {fileID: 0}
|
||||||
|
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_RaycastTarget: 1
|
||||||
|
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
m_Maskable: 1
|
||||||
|
m_OnCullStateChanged:
|
||||||
|
m_PersistentCalls:
|
||||||
|
m_Calls: []
|
||||||
|
m_Sprite: {fileID: 21300000, guid: 6e4f4c0390c77404fbc0e6716111c623, type: 3}
|
||||||
|
m_Type: 0
|
||||||
|
m_PreserveAspect: 0
|
||||||
|
m_FillCenter: 1
|
||||||
|
m_FillMethod: 4
|
||||||
|
m_FillAmount: 1
|
||||||
|
m_FillClockwise: 1
|
||||||
|
m_FillOrigin: 0
|
||||||
|
m_UseSpriteMesh: 0
|
||||||
|
m_PixelsPerUnitMultiplier: 1
|
||||||
|
--- !u!114 &842783453021988367
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 642597180042958460}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: e5f45762bc9a84906b62fb6b794a6feb, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
Color1: {r: 1, g: 0, b: 0, a: 1}
|
||||||
|
Color2: {r: 1, g: 0.5019608, b: 0, a: 0}
|
||||||
|
Angle: -180
|
||||||
|
--- !u!1 &3090447942859351756
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 3090447942859351757}
|
||||||
|
- component: {fileID: 3090447942859351759}
|
||||||
|
- component: {fileID: 3090447942859351758}
|
||||||
|
- component: {fileID: 3159055945384670641}
|
||||||
|
m_Layer: 5
|
||||||
|
m_Name: Border
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &3090447942859351757
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 3090447942859351756}
|
||||||
|
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||||
|
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_ConstrainProportionsScale: 0
|
||||||
|
m_Children: []
|
||||||
|
m_Father: {fileID: 3090447943159425445}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
m_AnchorMin: {x: 0, y: 0}
|
||||||
|
m_AnchorMax: {x: 1, y: 1}
|
||||||
|
m_AnchoredPosition: {x: 0, y: 0}
|
||||||
|
m_SizeDelta: {x: 0, y: 0}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!222 &3090447942859351759
|
||||||
|
CanvasRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 3090447942859351756}
|
||||||
|
m_CullTransparentMesh: 0
|
||||||
|
--- !u!114 &3090447942859351758
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 3090447942859351756}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
m_Material: {fileID: 0}
|
||||||
|
m_Color: {r: 1, g: 0.54509807, b: 0, a: 1}
|
||||||
|
m_RaycastTarget: 1
|
||||||
|
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
m_Maskable: 1
|
||||||
|
m_OnCullStateChanged:
|
||||||
|
m_PersistentCalls:
|
||||||
|
m_Calls: []
|
||||||
|
m_Sprite: {fileID: 21300000, guid: 5f18cfb933b374f4db1f912fca1ec409, type: 3}
|
||||||
|
m_Type: 0
|
||||||
|
m_PreserveAspect: 0
|
||||||
|
m_FillCenter: 1
|
||||||
|
m_FillMethod: 4
|
||||||
|
m_FillAmount: 1
|
||||||
|
m_FillClockwise: 1
|
||||||
|
m_FillOrigin: 0
|
||||||
|
m_UseSpriteMesh: 0
|
||||||
|
m_PixelsPerUnitMultiplier: 1
|
||||||
|
--- !u!114 &3159055945384670641
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 3090447942859351756}
|
||||||
|
m_Enabled: 0
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: e5f45762bc9a84906b62fb6b794a6feb, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
Color1: {r: 0.13725491, g: 0.14509805, b: 0.15686275, a: 1}
|
||||||
|
Color2: {r: 0.73058826, g: 0.7671177, b: 0.8117647, a: 1}
|
||||||
|
Angle: -90
|
||||||
|
--- !u!1 &3090447943159425444
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 3090447943159425445}
|
||||||
|
- component: {fileID: 3090447943159425443}
|
||||||
|
- component: {fileID: 3090447943159425442}
|
||||||
|
- component: {fileID: 3090447943159425446}
|
||||||
|
- component: {fileID: 7030230213418535633}
|
||||||
|
- component: {fileID: 7380289147853920374}
|
||||||
|
- component: {fileID: 8464029479315233580}
|
||||||
|
m_Layer: 5
|
||||||
|
m_Name: ItemLootUi
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &3090447943159425445
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 3090447943159425444}
|
||||||
|
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||||
|
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_ConstrainProportionsScale: 0
|
||||||
|
m_Children:
|
||||||
|
- {fileID: 3090447942859351757}
|
||||||
|
- {fileID: 3178920409736748321}
|
||||||
|
- {fileID: 1536933552086327455}
|
||||||
|
m_Father: {fileID: 0}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
m_AnchorMin: {x: 0.5, y: 0.5}
|
||||||
|
m_AnchorMax: {x: 0.5, y: 0.5}
|
||||||
|
m_AnchoredPosition: {x: 0, y: 0}
|
||||||
|
m_SizeDelta: {x: 70, y: 70}
|
||||||
|
m_Pivot: {x: 0.5, y: -1}
|
||||||
|
--- !u!222 &3090447943159425443
|
||||||
|
CanvasRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 3090447943159425444}
|
||||||
|
m_CullTransparentMesh: 0
|
||||||
|
--- !u!114 &3090447943159425442
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 3090447943159425444}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
m_Material: {fileID: 0}
|
||||||
|
m_Color: {r: 1, g: 0.5019608, b: 0, a: 0.19607843}
|
||||||
|
m_RaycastTarget: 1
|
||||||
|
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
m_Maskable: 1
|
||||||
|
m_OnCullStateChanged:
|
||||||
|
m_PersistentCalls:
|
||||||
|
m_Calls: []
|
||||||
|
m_Sprite: {fileID: 21300000, guid: 4596b288f688240be9303691a0bce9a0, type: 3}
|
||||||
|
m_Type: 0
|
||||||
|
m_PreserveAspect: 0
|
||||||
|
m_FillCenter: 1
|
||||||
|
m_FillMethod: 4
|
||||||
|
m_FillAmount: 1
|
||||||
|
m_FillClockwise: 1
|
||||||
|
m_FillOrigin: 0
|
||||||
|
m_UseSpriteMesh: 0
|
||||||
|
m_PixelsPerUnitMultiplier: 1
|
||||||
|
--- !u!114 &3090447943159425446
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 3090447943159425444}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: ad63971631c874d1aa33146b8079b8a5, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
m_Navigation:
|
||||||
|
m_Mode: 3
|
||||||
|
m_WrapAround: 0
|
||||||
|
m_SelectOnUp: {fileID: 0}
|
||||||
|
m_SelectOnDown: {fileID: 0}
|
||||||
|
m_SelectOnLeft: {fileID: 0}
|
||||||
|
m_SelectOnRight: {fileID: 0}
|
||||||
|
m_Transition: 0
|
||||||
|
m_Colors:
|
||||||
|
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
|
||||||
|
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
|
||||||
|
m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
|
||||||
|
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
|
||||||
|
m_ColorMultiplier: 1
|
||||||
|
m_FadeDuration: 0.1
|
||||||
|
m_SpriteState:
|
||||||
|
m_HighlightedSprite: {fileID: 0}
|
||||||
|
m_PressedSprite: {fileID: 0}
|
||||||
|
m_SelectedSprite: {fileID: 0}
|
||||||
|
m_DisabledSprite: {fileID: 0}
|
||||||
|
m_AnimationTriggers:
|
||||||
|
m_NormalTrigger: Normal
|
||||||
|
m_HighlightedTrigger: Highlighted
|
||||||
|
m_PressedTrigger: Pressed
|
||||||
|
m_SelectedTrigger: Selected
|
||||||
|
m_DisabledTrigger: Disabled
|
||||||
|
m_Interactable: 1
|
||||||
|
m_TargetGraphic: {fileID: 3090447943159425442}
|
||||||
|
m_OnClick:
|
||||||
|
m_PersistentCalls:
|
||||||
|
m_Calls: []
|
||||||
|
--- !u!114 &7030230213418535633
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 3090447943159425444}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 684da8d3856b6400ca0468d3888c5374, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
fadeTime: 0.2
|
||||||
|
onHoverAlpha: 0.6
|
||||||
|
onClickAlpha: 0.7
|
||||||
|
--- !u!225 &7380289147853920374
|
||||||
|
CanvasGroup:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 3090447943159425444}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_Alpha: 1
|
||||||
|
m_Interactable: 1
|
||||||
|
m_BlocksRaycasts: 1
|
||||||
|
m_IgnoreParentGroups: 0
|
||||||
|
--- !u!114 &8464029479315233580
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 3090447943159425444}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 3f8bfea5b12b9674dabae714608eb764, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
rectTransform: {fileID: 3090447943159425445}
|
||||||
|
border: {fileID: 3090447942859351758}
|
||||||
|
icon: {fileID: 56263909834790550}
|
||||||
|
line: {fileID: 1536933552086327455}
|
7
BlueWater/Assets/05.Prefabs/Ui/ItemLootUi.prefab.meta
Normal file
7
BlueWater/Assets/05.Prefabs/Ui/ItemLootUi.prefab.meta
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 0d213e978cd398441bcd61573163ca16
|
||||||
|
PrefabImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
Loading…
Reference in New Issue
Block a user