Commit 8cb74837 authored by wanqing's avatar wanqing

特效逻辑

parent e14ff79a
......@@ -15,16 +15,16 @@ RenderSettings:
m_ObjectHideFlags: 0
serializedVersion: 9
m_Fog: 0
m_FogColor: {r: 0.31163225, g: 0.3791211, b: 0.4433962, a: 1}
m_FogColor: {r: 0.7411765, g: 0.73333335, b: 0.92156863, a: 1}
m_FogMode: 1
m_FogDensity: 0.01
m_LinearFogStart: 5.7
m_LinearFogEnd: 28.9
m_AmbientSkyColor: {r: 0.990566, g: 0.958116, b: 0.9017889, a: 1}
m_LinearFogStart: 2
m_LinearFogEnd: 9.3
m_AmbientSkyColor: {r: 0.21176471, g: 0.22745098, b: 0.25882354, a: 1}
m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
m_AmbientIntensity: 1
m_AmbientMode: 0
m_AmbientMode: 3
m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0}
m_HaloStrength: 0.5
......@@ -38,7 +38,7 @@ RenderSettings:
m_ReflectionIntensity: 1
m_CustomReflection: {fileID: 0}
m_Sun: {fileID: 0}
m_IndirectSpecularColor: {r: 0.37311926, g: 0.38073996, b: 0.35872698, a: 1}
m_IndirectSpecularColor: {r: 0.45130473, g: 0.5001914, b: 0.5690714, a: 1}
m_UseRadianceAmbientProbe: 0
--- !u!157 &4
LightmapSettings:
......@@ -52,7 +52,7 @@ LightmapSettings:
m_AlbedoBoost: 1
m_EnvironmentLightingMode: 0
m_EnableBakedLightmaps: 1
m_EnableRealtimeLightmaps: 1
m_EnableRealtimeLightmaps: 0
m_LightmapEditorSettings:
serializedVersion: 12
m_Resolution: 2
......@@ -166,6 +166,7 @@ MonoBehaviour:
m_EditorClassIdentifier:
levelPrefs:
- {fileID: 8692181047053733938, guid: 90ed022fa9d48a64f910aad15b7faa2d, type: 3}
- {fileID: 8692181047053733938, guid: f7454de7619e58043bd3aad03242010a, type: 3}
--- !u!1 &543166196
GameObject:
m_ObjectHideFlags: 0
......@@ -262,6 +263,7 @@ Transform:
m_Children:
- {fileID: 1872965181}
- {fileID: 186647395}
- {fileID: 1440651476}
m_Father: {fileID: 0}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
......@@ -277,8 +279,101 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: eac3ab1cd8d56dc4fb10ca3966649e25, type: 3}
m_Name:
m_EditorClassIdentifier:
battleUI: {fileID: 4757777914183204071}
battleUI: {fileID: 4123899719278745304}
m_levelManager: {fileID: 186647396}
m_light: {fileID: 1440651475}
--- !u!1 &1440651475
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1440651476}
- component: {fileID: 1440651477}
m_Layer: 0
m_Name: Directional Light
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &1440651476
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1440651475}
m_LocalRotation: {x: 0.23292051, y: 0.04439483, z: 0.09653649, w: 0.9666736}
m_LocalPosition: {x: -0.71911913, y: 1.2856759, z: -0.98729205}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 707446924}
m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 26.215002, y: 8.383, z: 13.361001}
--- !u!108 &1440651477
Light:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1440651475}
m_Enabled: 1
serializedVersion: 10
m_Type: 1
m_Shape: 0
m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1}
m_Intensity: 1
m_Range: 10
m_SpotAngle: 30
m_InnerSpotAngle: 21.80208
m_CookieSize: 10
m_Shadows:
m_Type: 0
m_Resolution: -1
m_CustomResolution: -1
m_Strength: 1
m_Bias: 0
m_NormalBias: 0.4
m_NearPlane: 0.2
m_CullingMatrixOverride:
e00: 1
e01: 0
e02: 0
e03: 0
e10: 0
e11: 1
e12: 0
e13: 0
e20: 0
e21: 0
e22: 1
e23: 0
e30: 0
e31: 0
e32: 0
e33: 1
m_UseCullingMatrixOverride: 0
m_Cookie: {fileID: 0}
m_DrawHalo: 0
m_Flare: {fileID: 0}
m_RenderMode: 0
m_CullingMask:
serializedVersion: 2
m_Bits: 4294967295
m_RenderingLayerMask: 1
m_Lightmapping: 4
m_LightShadowCasterMode: 0
m_AreaSize: {x: 1, y: 1}
m_BounceIntensity: 1
m_ColorTemperature: 6570
m_UseColorTemperature: 0
m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0}
m_UseBoundingSphereOverride: 0
m_ShadowRadius: 0
m_ShadowAngle: 0
--- !u!1 &1872965180
GameObject:
m_ObjectHideFlags: 0
......@@ -324,7 +419,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 65d718b4fac224944ad7728793e3fdc7, type: 3}
m_Name:
m_EditorClassIdentifier:
pad: {fileID: 4757777914971753144}
pad: {fileID: 4123899720637669511}
--- !u!114 &1872965183
MonoBehaviour:
m_ObjectHideFlags: 0
......@@ -357,31 +452,17 @@ MonoBehaviour:
type: 3}
m_StrawberryObj: {fileID: 4487736285029203363, guid: 377e1c7ad59bf454ea1024ad4b044134,
type: 3}
--- !u!114 &4757777914183204071 stripped
MonoBehaviour:
m_CorrespondingSourceObject: {fileID: 6064464677632144694, guid: 919382978f5e2684ba83e6daf6491458,
m_StarwberryEffect1: {fileID: 193062, guid: 01949c12a89de284792dc4b7b7128404, type: 3}
m_StarwberryEffect2: {fileID: 195360, guid: a3c24a5ae068ed44d950af671f99cc21, type: 3}
m_LemonEffect1: {fileID: 113062, guid: ce90a5909cc1f7f49865904e3c751f81, type: 3}
m_LemonEffect2: {fileID: 177842, guid: 57611c2489302734bbd6fa8a1ed9eae5, type: 3}
m_OrangeEffect1: {fileID: 135106, guid: f563a43ef6da8ce43b59040b834b597d, type: 3}
m_OrangeEffect2: {fileID: 137732, guid: b2a41848dc033f04295f551876431a40, type: 3}
m_StarwberryDropEffect: {fileID: 128724, guid: ece958bbba812cd4ca52c389ccc91c24,
type: 3}
m_PrefabInstance: {fileID: 7859421868164097006}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 719c0ad6d83af074a83455f6c88d41e0, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!114 &4757777914971753144 stripped
MonoBehaviour:
m_CorrespondingSourceObject: {fileID: 6064464676810081129, guid: 919382978f5e2684ba83e6daf6491458,
type: 3}
m_PrefabInstance: {fileID: 7859421868164097006}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 4e3ca8d9f66bfdf4da1bfb54682c658b, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!1001 &7859421868164097006
m_LemonDropEffect: {fileID: 187720, guid: daa38997aa539a64298930238e524582, type: 3}
m_OrangeDropEffect: {fileID: 104842, guid: 4a8cbfb38b882fd4b8d20aebcd1cb9b4, type: 3}
--- !u!1001 &1759070561668051926
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
......@@ -500,3 +581,27 @@ PrefabInstance:
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 919382978f5e2684ba83e6daf6491458, type: 3}
--- !u!114 &4123899719278745304 stripped
MonoBehaviour:
m_CorrespondingSourceObject: {fileID: 6064464677632144694, guid: 919382978f5e2684ba83e6daf6491458,
type: 3}
m_PrefabInstance: {fileID: 1759070561668051926}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 719c0ad6d83af074a83455f6c88d41e0, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!114 &4123899720637669511 stripped
MonoBehaviour:
m_CorrespondingSourceObject: {fileID: 6064464676810081129, guid: 919382978f5e2684ba83e6daf6491458,
type: 3}
m_PrefabInstance: {fileID: 1759070561668051926}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 4e3ca8d9f66bfdf4da1bfb54682c658b, type: 3}
m_Name:
m_EditorClassIdentifier:
......@@ -24,6 +24,8 @@ public class BattleCtrl : MonoBehaviour
public LevelManager m_levelManager;
public LevelManager levelManager => m_levelManager;
public GameObject m_light;
/// <summary>
/// 场景加载器
/// </summary>
......@@ -53,6 +55,7 @@ public class BattleCtrl : MonoBehaviour
void Start()
{
battleUI.onStartBtn = StartBattle;
m_light.SetActive(false);
}
void InitServices()
......
......@@ -37,6 +37,8 @@ public class BattleUI : MonoBehaviour
public GameObject m_HideMouseObj;//隐藏手指图标obj
public GameObject m_ChangeBgColorObj;//更换背景颜色obj
public GameObject[] m_boomUIS;//爆炸Ui
public RectTransform m_fruitGroupRT;//水果group
public GameObject m_fruitSecondLineObj;//第二关的线
public Button m_boomBtn;//炸弹按钮
public GameObject m_symbolObj;//十字架图标
public GameObject m_takeBtnObj;//take按钮
......@@ -251,6 +253,10 @@ public class BattleUI : MonoBehaviour
{
m_selectLevelObj.SetActive(false);
m_successObj.SetActive(false);
if (BattleCtrl.instance.levelManager.curLevel)
{
BattleCtrl.instance.levelManager.curLevel.fruitView.CacheAllFruit();
}
}
/// 加载关卡后调用
......@@ -277,7 +283,21 @@ public class BattleUI : MonoBehaviour
m_clawMoveSpeed.text = string.Format("系数越小,越快\n{0:f3}", GameServices.configService.playerConfig.ClawMoveSpeed);
});
SetTakeBtnState(false);
m_bResult = false;
m_bResult = false;//153,212
//水果位置
Vector2 varPos = m_fruitGroupRT.anchoredPosition;
if(BattleCtrl.instance.levelManager.CurLevelIndex == LevelEnum.levelOneIndex)
{
varPos.y = 153.0f;
m_fruitSecondLineObj.SetActive(false);
}
else if(BattleCtrl.instance.levelManager.CurLevelIndex == LevelEnum.levelTwoIndex)
{
varPos.y = 212.0f;
m_fruitSecondLineObj.SetActive(true);
}
m_fruitGroupRT.anchoredPosition = varPos;
}
//设置战斗UI状态
public void SetBattleObjState(bool bool_)
......
......@@ -13,10 +13,19 @@ public class FruitView : MonoBehaviour
private bool m_bIsTouchUp = true;//是否松手
private List<GameObject> m_lineLst = new List<GameObject>();
private int m_SelectNum = 0;//选中数量
private List<GameObject> m_fruitBombEffect = new List<GameObject>();//爆汁特效
private List<GameObject> m_fruitDropEffect = new List<GameObject>();//流体特效
void Start()
{
GameServices.inputService.pad.onTouchUp += OnTouchUp;
GlobalConfig.LoadFirstLevelDefaultFruit(m_fruitParent);
if (BattleCtrl.instance.levelManager.CurLevelIndex == LevelEnum.levelOneIndex)
{
GlobalConfig.LoadFirstLevelDefaultFruit(m_fruitParent);
}
else if (BattleCtrl.instance.levelManager.CurLevelIndex == LevelEnum.levelTwoIndex)
{
GlobalConfig.LoadSecondLevelDefaultFruit(m_fruitParent);
}
}
// 抬起回调
void OnTouchUp()
......@@ -29,9 +38,48 @@ public class FruitView : MonoBehaviour
varHO.FlashingOff();
}
m_selectLst[i].SetFrag();
//播放爆汁特效
GameObject varEffectObj = null;
int varRand = Random.Range(0, 2);
if (m_selectLst[i].type == FruitType.Strawberry)
{
if (varRand == 0)
{
varEffectObj = PoolManager.Instance.GetObjectFromPool(CacheManager.Instance.StarwberryEffect1);
}
else
{
varEffectObj = PoolManager.Instance.GetObjectFromPool(CacheManager.Instance.StarwberryEffect2);
}
}
else if (m_selectLst[i].type == FruitType.Lemon)
{
if (varRand == 0)
{
varEffectObj = PoolManager.Instance.GetObjectFromPool(CacheManager.Instance.LemonEffect1);
}
else
{
varEffectObj = PoolManager.Instance.GetObjectFromPool(CacheManager.Instance.LemonEffect2);
}
}
else if(m_selectLst[i].type == FruitType.Orange)
{
if (varRand == 0)
{
varEffectObj = PoolManager.Instance.GetObjectFromPool(CacheManager.Instance.OrangeEffect1);
}
else
{
varEffectObj = PoolManager.Instance.GetObjectFromPool(CacheManager.Instance.OrangeEffect2);
}
}
varEffectObj.transform.position = m_selectLst[i].transform.position;
m_fruitBombEffect.Add(varEffectObj);
}
m_SelectNum = m_selectLst.Count;
Invoke("DelayClear", 0.5f);
Invoke("DelayClearEffect", 1.0f);
m_bIsTouchUp = true;
m_lastSelectItem = null;
for(int i = 0;i< m_lineLst.Count;i++)
......@@ -40,14 +88,33 @@ public class FruitView : MonoBehaviour
}
m_lineLst.Clear();
}
//延迟删除特效
void DelayClearEffect()
{
for (int i = 0; i < m_fruitBombEffect.Count; i++)
{
PoolManager.Instance.ReturnObjectToPool(m_fruitBombEffect[i]);
}
m_fruitBombEffect.Clear();
}
//延迟删除流体特效
void DelayClearDropEffect()
{
for (int i = 0; i < m_fruitDropEffect.Count; i++)
{
PoolManager.Instance.ReturnObjectToPool(m_fruitDropEffect[i]);
}
m_fruitDropEffect.Clear();
}
//延迟删除
void DelayClear()
{
int varStrawberryNum = 0;
int varLemonNum = 0;
int varOrangeNum = 0;
for (int i = 0; i < m_selectLst.Count; i++)
{
if(m_selectLst[i].type == FruitType.Strawberry)
if (m_selectLst[i].type == FruitType.Strawberry)
{
varStrawberryNum++;
}
......@@ -55,32 +122,115 @@ public class FruitView : MonoBehaviour
{
varLemonNum++;
}
else if(m_selectLst[i].type == FruitType.Orange)
{
varOrangeNum++;
}
PoolManager.Instance.ReturnObjectToPool(m_selectLst[i].gameObject);
m_selectLst[i].ResetFragState();
}
m_glassView.SetFruitNum(varStrawberryNum, varLemonNum);
m_glassView.SetFruitNum(varStrawberryNum, varLemonNum, varOrangeNum);
m_selectLst.Clear();
//流体特效
if (varStrawberryNum > 0)
{
GameObject varEffect1 = PoolManager.Instance.GetObjectFromPool(CacheManager.Instance.StarwberryDropEffect);
varEffect1.transform.position = m_glassView.effectPos;
m_fruitDropEffect.Add(varEffect1);
}
if(varLemonNum > 0)
{
GameObject varEffect2 = PoolManager.Instance.GetObjectFromPool(CacheManager.Instance.LemonDropEffect);
varEffect2.transform.position = m_glassView.effectPos;
m_fruitDropEffect.Add(varEffect2);
}
if (varOrangeNum > 0)
{
GameObject varEffect3 = PoolManager.Instance.GetObjectFromPool(CacheManager.Instance.OrangeDropEffect);
varEffect3.transform.position = m_glassView.effectPos;
m_fruitDropEffect.Add(varEffect3);
}
Invoke("DelayClearDropEffect", 2.0f);
Invoke("DelayCreate", 0.2f);
}
//延迟生成
void DelayCreate()
{
GlobalConfig.LoadFirstRandomFruit(m_SelectNum, m_fruitParent);
if (BattleCtrl.instance.levelManager.CurLevelIndex == LevelEnum.levelOneIndex)
{
GlobalConfig.LoadFirstRandomFruit(m_SelectNum, m_fruitParent);
}
else if (BattleCtrl.instance.levelManager.CurLevelIndex == LevelEnum.levelTwoIndex)
{
GlobalConfig.LoadSecondRandomFruit(m_SelectNum, m_fruitParent);
}
}
//refresh
public void Refresh()
{
Rigidbody[] varBody = m_fruitParent.GetComponentsInChildren<Rigidbody>();
for(int i = 0;i<varBody.Length;i++)
//Rigidbody[] varBody = m_fruitParent.GetComponentsInChildren<Rigidbody>();
//for(int i = 0;i<varBody.Length;i++)
//{
// Transform varTrans = varBody[i].transform;
// if(varBody[i].transform.localPosition.x < 0)
// {
// varBody[i].AddForce((Vector3.up + Vector3.right) * 3.0f, ForceMode.Impulse);
// }
// else
// {
// varBody[i].AddForce((Vector3.left) * 3.0f, ForceMode.Impulse);
// }
//}
Transform varStrawberry = PoolManager.Instance.GetObjectRoot(CacheManager.Instance.StrawberryObj);
if (varStrawberry)
{
Transform varTrans = varBody[i].transform;
if(varBody[i].transform.localPosition.x < 0)
Rigidbody[] varBody = varStrawberry.GetComponentsInChildren<Rigidbody>();
for (int i = 0; i < varBody.Length; i++)
{
varBody[i].AddForce((Vector3.up + Vector3.right) * 3.0f, ForceMode.Impulse);
Transform varTrans = varBody[i].transform;
if (varBody[i].transform.position.x < 0)
{
varBody[i].AddForce((Vector3.up + Vector3.right) * 3.0f, ForceMode.Impulse);
}
else
{
varBody[i].AddForce((Vector3.left) * 3.0f, ForceMode.Impulse);
}
}
else
}
Transform varLemonberry = PoolManager.Instance.GetObjectRoot(CacheManager.Instance.LemonObj);
if (varLemonberry)
{
Rigidbody[] varBody = varLemonberry.GetComponentsInChildren<Rigidbody>();
for (int i = 0; i < varBody.Length; i++)
{
Transform varTrans = varBody[i].transform;
if (varBody[i].transform.position.x < 0)
{
varBody[i].AddForce((Vector3.up + Vector3.right) * 3.0f, ForceMode.Impulse);
}
else
{
varBody[i].AddForce((Vector3.left) * 3.0f, ForceMode.Impulse);
}
}
}
Transform varOrangeberry = PoolManager.Instance.GetObjectRoot(CacheManager.Instance.OrangeObj);
if (varOrangeberry)
{
Rigidbody[] varBody = varOrangeberry.GetComponentsInChildren<Rigidbody>();
for (int i = 0; i < varBody.Length; i++)
{
varBody[i].AddForce((Vector3.left) * 3.0f, ForceMode.Impulse);
Transform varTrans = varBody[i].transform;
if (varBody[i].transform.position.x < 0)
{
varBody[i].AddForce((Vector3.up + Vector3.right) * 3.0f, ForceMode.Impulse);
}
else
{
varBody[i].AddForce((Vector3.left) * 3.0f, ForceMode.Impulse);
}
}
}
}
......@@ -179,6 +329,37 @@ public class FruitView : MonoBehaviour
//这里可以设置材质,具体自己设置
//MyLine.GetComponent<MeshRenderer>().material = GetComponent<MeshRenderer>().material;
}
//缓存所有水果
public void CacheAllFruit()
{
Transform varStrawberry = PoolManager.Instance.GetObjectRoot(CacheManager.Instance.StrawberryObj);
if(varStrawberry)
{
Rigidbody[] varBody = varStrawberry.GetComponentsInChildren<Rigidbody>();
for(int i = 0;i<varBody.Length;i++)
{
PoolManager.Instance.ReturnObjectToPool(varBody[i].gameObject);
}
}
Transform varLemonberry = PoolManager.Instance.GetObjectRoot(CacheManager.Instance.LemonObj);
if (varLemonberry)
{
Rigidbody[] varBody = varLemonberry.GetComponentsInChildren<Rigidbody>();
for (int i = 0; i < varBody.Length; i++)
{
PoolManager.Instance.ReturnObjectToPool(varBody[i].gameObject);
}
}
Transform varOrangeberry = PoolManager.Instance.GetObjectRoot(CacheManager.Instance.OrangeObj);
if (varOrangeberry)
{
Rigidbody[] varBody = varOrangeberry.GetComponentsInChildren<Rigidbody>();
for (int i = 0; i < varBody.Length; i++)
{
PoolManager.Instance.ReturnObjectToPool(varBody[i].gameObject);
}
}
}
private void OnDestroy()
{
if (GameServices.inputService != null)
......@@ -189,5 +370,11 @@ public class FruitView : MonoBehaviour
m_lineLst = null;
m_selectLst.Clear();
m_selectLst = null;
DelayClearEffect();
DelayClearDropEffect();
//m_fruitBombEffect.Clear();
m_fruitBombEffect = null;
//m_fruitDropEffect.Clear();
m_fruitDropEffect = null;
}
}
......@@ -6,20 +6,26 @@ public class GlassView : MonoBehaviour
{
public Transform m_strawberry;//草莓
public Transform m_lemon;//柠檬
public Transform m_orange;//橙子
public Transform m_effectPos;//特效位置
public Vector3 effectPos => m_effectPos.position;
private float m_strawberryOffest;
private float m_lemonOffest;
private float m_orangeOffest;
private float m_strawberryNum;
private float m_lemonNum;
private float m_orangeNum;
private float m_strawberryMaxNum = 3.0f;
private float m_lemonMaxNum = 3.0f;
private float m_orangeMaxNum = 3.0f;
private bool m_bControl = true;
//数量
public void SetFruitNum(int num1,int num2)
public void SetFruitNum(int num1,int num2,int num3)
{
m_strawberryNum += num1;
if (m_strawberryNum > m_strawberryMaxNum)
......@@ -31,6 +37,11 @@ public class GlassView : MonoBehaviour
{
m_lemonNum = m_lemonMaxNum;
}
m_orangeNum += num3;
if(m_orangeNum > m_orangeMaxNum)
{
m_orangeNum = m_orangeMaxNum;
}
}
private void Update()
{
......@@ -49,6 +60,14 @@ public class GlassView : MonoBehaviour
Vector3 varPos = m_lemon.localPosition;
varPos.y = m_strawberry.localScale.y / 10.0f + m_strawberry.localScale.y / 60.0f;
m_lemon.localPosition = varPos;
if(m_orange)
{
Vector3 varOrangePos = m_orange.localPosition;
varOrangePos.y = m_strawberry.localScale.y / 10.0f + m_strawberry.localScale.y / 60.0f
+ m_lemon.localScale.y / 10.0f + m_lemon.localScale.y / 60.0f;
m_orange.localPosition = varOrangePos;
}
}
if(m_lemonOffest < m_lemonNum)
{
......@@ -61,12 +80,45 @@ public class GlassView : MonoBehaviour
Vector3 varPos = m_lemon.localPosition;
varPos.y = m_strawberry.localScale.y / 10.0f + m_strawberry.localScale.y / 60.0f;
m_lemon.localPosition = varPos;
if (m_orange)
{
Vector3 varOrangePos = m_orange.localPosition;
varOrangePos.y = m_strawberry.localScale.y / 10.0f + m_strawberry.localScale.y / 60.0f
+ m_lemon.localScale.y / 10.0f + m_lemon.localScale.y / 60.0f;
m_orange.localPosition = varOrangePos;
}
}
if(m_orangeOffest < m_orangeNum && m_orange)
{
m_orangeOffest += Time.deltaTime;
Vector3 varSize = m_orange.localScale;
varSize.y = m_orangeOffest / 10.0f;
m_orange.localScale = varSize;
Vector3 varPos = m_orange.localPosition;
varPos.y = m_strawberry.localScale.y / 10.0f + m_strawberry.localScale.y / 60.0f
+ m_lemon.localScale.y / 10.0f + m_lemon.localScale.y / 60.0f;
m_orange.localPosition = varPos;
}
if (BattleCtrl.instance.levelManager.CurLevelIndex == LevelEnum.levelOneIndex)
{
if (m_strawberryOffest >= m_strawberryMaxNum && m_lemonOffest >= m_lemonMaxNum
&& m_bControl)
{
m_bControl = false;
BattleCtrl.instance.OnBattleWin();
}
}
if(m_strawberryOffest >= m_strawberryMaxNum && m_lemonOffest >= m_lemonMaxNum
&& m_bControl)
else if (BattleCtrl.instance.levelManager.CurLevelIndex == LevelEnum.levelTwoIndex)
{
m_bControl = false;
BattleCtrl.instance.OnBattleWin();
if (m_strawberryOffest >= m_strawberryMaxNum && m_lemonOffest >= m_lemonMaxNum
&& m_orangeOffest >= m_orangeMaxNum && m_bControl)
{
m_bControl = false;
BattleCtrl.instance.OnBattleWin();
}
}
}
}
......@@ -12,10 +12,37 @@ public class CacheManager : MonoBehaviour
private GameObject m_OrangeObj;//橙子
[SerializeField]
private GameObject m_StrawberryObj;//草莓
[SerializeField]
private GameObject m_StarwberryEffect1;//草莓爆汁特效1
[SerializeField]
private GameObject m_StarwberryEffect2;//草莓爆汁特效2
[SerializeField]
private GameObject m_LemonEffect1;//柠檬爆汁特效1
[SerializeField]
private GameObject m_LemonEffect2;//柠檬爆汁特效2
[SerializeField]
private GameObject m_OrangeEffect1;//橙子爆汁特效1
[SerializeField]
private GameObject m_OrangeEffect2;//橙子爆汁特效2
[SerializeField]
private GameObject m_StarwberryDropEffect;//草莓流体特效
[SerializeField]
private GameObject m_LemonDropEffect;//柠檬流体特效
[SerializeField]
private GameObject m_OrangeDropEffect;//橙子流体特效
public GameObject lineObj => m_lineObj;
public GameObject LemonObj => m_LemonObj;
public GameObject OrangeObj => m_OrangeObj;
public GameObject StrawberryObj => m_StrawberryObj;
public GameObject StarwberryEffect1 => m_StarwberryEffect1;
public GameObject StarwberryEffect2 => m_StarwberryEffect2;
public GameObject LemonEffect1 => m_LemonEffect1;
public GameObject LemonEffect2 => m_LemonEffect2;
public GameObject OrangeEffect1 => m_OrangeEffect1;
public GameObject OrangeEffect2 => m_OrangeEffect2;
public GameObject StarwberryDropEffect => m_StarwberryDropEffect;
public GameObject LemonDropEffect => m_LemonDropEffect;
public GameObject OrangeDropEffect => m_OrangeDropEffect;
public static CacheManager Instance = null;
void Awake()
{
......
......@@ -10,6 +10,7 @@ class Pool
//the root obj for unused obj
private GameObject m_rootObj;
public Transform rootTrans => m_rootObj.transform;
private float lastUsedTime = -1;
//private PoolInflationType inflationType;
private string poolName;
......
......@@ -62,6 +62,18 @@ public class PoolManager : MonoBehaviour
return varGo;
}
public Transform GetObjectRoot(GameObject go)
{
Transform varTrans = null;
Pool pool = GetPool(go);
if (pool != null)
{
varTrans = pool.rootTrans;
}
return varTrans;
}
/// <summary>
/// Return obj to the pool
/// </summary>
......
......@@ -168,24 +168,58 @@ public class GlobalConfig
//加载第一关默认的水果
public static void LoadFirstLevelDefaultFruit(Transform parent)
{
float varX = parent.localPosition.x;
float varY = parent.localPosition.y;
float varZ = parent.localPosition.z;
for(int i = 0;i<3;i++)
{
GameObject varObj = PoolManager.Instance.GetObjectFromPool(CacheManager.Instance.StrawberryObj);
varObj.transform.SetParent(parent);
varObj.transform.localPosition = new Vector3(-0.5f + 0.5f * i, 2.5f,0.0f);
//varObj.transform.SetParent(parent);
varObj.transform.localPosition = new Vector3(-0.5f + 0.5f * i + varX, 2.5f+ varY, 0.0f+ varZ);
varObj.transform.localRotation = Quaternion.identity;
}
for (int i = 0; i < 3; i++)
{
GameObject varObj = PoolManager.Instance.GetObjectFromPool(CacheManager.Instance.LemonObj);
varObj.transform.SetParent(parent);
varObj.transform.localPosition = new Vector3(-0.5f + 0.5f * i, 3.0f, 0.0f);
//varObj.transform.SetParent(parent);
varObj.transform.localPosition = new Vector3(-0.5f + 0.5f * i+ varX, 3.0f+ varY, 0.0f+ varZ);
varObj.transform.localRotation = Quaternion.identity;
}
}
//加载第二关默认的水果
public static void LoadSecondLevelDefaultFruit(Transform parent)
{
float varX = parent.localPosition.x;
float varY = parent.localPosition.y;
float varZ = parent.localPosition.z;
for (int i = 0; i < 3; i++)
{
GameObject varObj = PoolManager.Instance.GetObjectFromPool(CacheManager.Instance.StrawberryObj);
//varObj.transform.SetParent(parent);
varObj.transform.localPosition = new Vector3(-0.5f + 0.5f * i+ varX, 2.5f+ varY, 0.0f+ varZ);
varObj.transform.localRotation = Quaternion.identity;
}
for (int i = 0; i < 3; i++)
{
GameObject varObj = PoolManager.Instance.GetObjectFromPool(CacheManager.Instance.LemonObj);
//varObj.transform.SetParent(parent);
varObj.transform.localPosition = new Vector3(-0.5f + 0.5f * i+ varX, 3.0f+ varY, 0.0f+ varZ);
varObj.transform.localRotation = Quaternion.identity;
}
for (int i = 0; i < 3; i++)
{
GameObject varObj = PoolManager.Instance.GetObjectFromPool(CacheManager.Instance.OrangeObj);
//varObj.transform.SetParent(parent);
varObj.transform.localPosition = new Vector3(-0.5f + 0.5f * i+ varX, 3.5f+ varY, 0.0f+ varZ);
varObj.transform.localRotation = Quaternion.identity;
}
}
//第一关随机加载水果
public static void LoadFirstRandomFruit(int num,Transform parent)
{
float varX = parent.localPosition.x;
float varY = parent.localPosition.y;
float varZ = parent.localPosition.z;
for (int i = 0; i < num; i++)
{
int varRand = Random.Range(0, 2);
......@@ -198,8 +232,35 @@ public class GlobalConfig
{
varObj = PoolManager.Instance.GetObjectFromPool(CacheManager.Instance.LemonObj);
}
varObj.transform.SetParent(parent);
varObj.transform.localPosition = new Vector3(-0.5f + 0.5f * (i % 3), 2.5f+0.5f*(i / 3), 0.0f);
//varObj.transform.SetParent(parent);
varObj.transform.localPosition = new Vector3(-0.5f + 0.5f * (i % 3)+ varX, 2.5f+0.5f*(i / 3)+ varY, 0.0f+ varZ);
varObj.transform.localRotation = Quaternion.identity;
}
}
//第二关随机加载水果
public static void LoadSecondRandomFruit(int num, Transform parent)
{
float varX = parent.localPosition.x;
float varY = parent.localPosition.y;
float varZ = parent.localPosition.z;
for (int i = 0; i < num; i++)
{
int varRand = Random.Range(0, 3);
GameObject varObj;
if (varRand == 0)
{
varObj = PoolManager.Instance.GetObjectFromPool(CacheManager.Instance.StrawberryObj);
}
else if(varRand == 1)
{
varObj = PoolManager.Instance.GetObjectFromPool(CacheManager.Instance.LemonObj);
}
else
{
varObj = PoolManager.Instance.GetObjectFromPool(CacheManager.Instance.OrangeObj);
}
//varObj.transform.SetParent(parent);
varObj.transform.localPosition = new Vector3(-0.5f + 0.5f * (i % 3)+ varX, 2.5f + 0.5f * (i / 3)+ varY, 0.0f+ varZ);
varObj.transform.localRotation = Quaternion.identity;
}
}
......
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
serializedVersion: 6
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: 3
m_Shader: {fileID: 7, guid: 0000000000000000f000000000000000, type: 0}
m_ShaderKeywords:
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: 2000
stringTagMap: {}
disabledShaderPasses: []
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _MainTex:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Floats: []
m_Colors:
- _Color: {r: 1, g: 0.5882353, b: 0.039215688, a: 1}
fileFormatVersion: 2
guid: 9dd8f2d8856560d4ea77ecf73154da33
NativeFormatImporter:
userData:
assetBundleName:
assetBundleVariant:
......@@ -161,15 +161,16 @@ Transform:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2142305358739686495}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 8, y: 5, z: 8}
m_LocalScale: {x: 5, y: 2.4805737, z: 5}
m_Children:
- {fileID: 2153696898578379108}
- {fileID: 5881045071721360484}
- {fileID: 5495132487171662943}
- {fileID: 8732719001263257071}
- {fileID: 1242631683105714375}
- {fileID: 993432092483009715}
m_Father: {fileID: 4143540499663807236}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
......@@ -1075,7 +1076,7 @@ Transform:
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children:
- {fileID: 2419814894352406610}
- {fileID: 5669328139120612401}
m_Father: {fileID: 2419814894542974148}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
......@@ -2332,36 +2333,6 @@ Light:
m_UseBoundingSphereOverride: 0
m_ShadowRadius: 0
m_ShadowAngle: 0
--- !u!1 &2419814894127842282
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2419814892960734130}
m_Layer: 0
m_Name: Missing Prefab (Dummy)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &2419814892960734130
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2419814894127842282}
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_Children: []
m_Father: {fileID: 2419814894352406610}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &2419814894139061658
GameObject:
m_ObjectHideFlags: 0
......@@ -2626,37 +2597,6 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
m_type: 0
--- !u!1 &2419814894194843858
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2419814894352406610}
m_Layer: 0
m_Name: Cup2 (Missing Prefab)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &2419814894352406610
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2419814894194843858}
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_Children:
- {fileID: 2419814892960734130}
m_Father: {fileID: 2419814893315684943}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &2419814894216345572
GameObject:
m_ObjectHideFlags: 0
......@@ -3814,8 +3754,8 @@ Transform:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4365432264920493982}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0.0614, y: 0.038, z: 0}
m_LocalScale: {x: 0.02, y: 0.02, z: 0.02}
m_LocalPosition: {x: 0.0614, y: 0.032, z: 0}
m_LocalScale: {x: 0.02, y: 0.025, z: 0.02}
m_Children: []
m_Father: {fileID: 2532882320877503867}
m_RootOrder: 3
......@@ -3894,8 +3834,8 @@ Transform:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4715037124225283051}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0.0614, y: 0.073, z: 0}
m_LocalScale: {x: 0.015, y: 0.015, z: 0.015}
m_LocalPosition: {x: 0.0614, y: 0.069, z: 0}
m_LocalScale: {x: 0.015, y: 0.02, z: 0.015}
m_Children: []
m_Father: {fileID: 2532882320877503867}
m_RootOrder: 4
......@@ -4129,7 +4069,7 @@ MeshFilter:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6003039039774162540}
m_Mesh: {fileID: -7192290727576516693, guid: 3377a224f3cafa44f9aa89d3ab9d9aa9, type: 3}
m_Mesh: {fileID: -7671204574982233823, guid: 90eee04922c34b64cb3976e763b2cc56, type: 3}
--- !u!23 &6521616105535068027
MeshRenderer:
m_ObjectHideFlags: 0
......@@ -4525,6 +4465,36 @@ MeshCollider:
m_Convex: 1
m_CookingOptions: 30
m_Mesh: {fileID: 3369316746193770658, guid: 07369f493fdd48d45b9914d4126d3820, type: 3}
--- !u!1 &7230022379656683608
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 993432092483009715}
m_Layer: 0
m_Name: EffectPos
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &993432092483009715
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7230022379656683608}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0.122279786, z: -0.0008000016}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 2532882320877503867}
m_RootOrder: 5
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &7568459270937440426
GameObject:
m_ObjectHideFlags: 0
......@@ -4717,7 +4687,7 @@ Transform:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8366979971877995433}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: -1.689, z: 0.458}
m_LocalPosition: {x: 0, y: -1.723324, z: 0.314}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children:
- {fileID: 2532882320877503867}
......@@ -4738,6 +4708,107 @@ MonoBehaviour:
m_EditorClassIdentifier:
m_strawberry: {fileID: 5881045071721360484}
m_lemon: {fileID: 5495132487171662943}
m_effectPos: {fileID: 993432092483009715}
--- !u!1001 &853374032285843243
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
m_TransformParent: {fileID: 2419814893315684943}
m_Modifications:
- target: {fileID: -4216859302048453862, guid: f38ffac9ed6617a4e87f152c2a12b0c0,
type: 3}
propertyPath: m_LocalPosition.x
value: -0
objectReference: {fileID: 0}
- target: {fileID: -4216859302048453862, guid: f38ffac9ed6617a4e87f152c2a12b0c0,
type: 3}
propertyPath: m_LocalPosition.y
value: -1.7
objectReference: {fileID: 0}
- target: {fileID: -4216859302048453862, guid: f38ffac9ed6617a4e87f152c2a12b0c0,
type: 3}
propertyPath: m_LocalPosition.z
value: 0.666
objectReference: {fileID: 0}
- target: {fileID: -4216859302048453862, guid: f38ffac9ed6617a4e87f152c2a12b0c0,
type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: -4216859302048453862, guid: f38ffac9ed6617a4e87f152c2a12b0c0,
type: 3}
propertyPath: m_LocalRotation.y
value: 1
objectReference: {fileID: 0}
- target: {fileID: -4216859302048453862, guid: f38ffac9ed6617a4e87f152c2a12b0c0,
type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: -4216859302048453862, guid: f38ffac9ed6617a4e87f152c2a12b0c0,
type: 3}
propertyPath: m_LocalRotation.w
value: 0
objectReference: {fileID: 0}
- target: {fileID: -4216859302048453862, guid: f38ffac9ed6617a4e87f152c2a12b0c0,
type: 3}
propertyPath: m_RootOrder
value: 0
objectReference: {fileID: 0}
- target: {fileID: -4216859302048453862, guid: f38ffac9ed6617a4e87f152c2a12b0c0,
type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: -4216859302048453862, guid: f38ffac9ed6617a4e87f152c2a12b0c0,
type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 180
objectReference: {fileID: 0}
- target: {fileID: -4216859302048453862, guid: f38ffac9ed6617a4e87f152c2a12b0c0,
type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: -4216859302048453862, guid: f38ffac9ed6617a4e87f152c2a12b0c0,
type: 3}
propertyPath: m_LocalScale.x
value: 0.33528
objectReference: {fileID: 0}
- target: {fileID: -4216859302048453862, guid: f38ffac9ed6617a4e87f152c2a12b0c0,
type: 3}
propertyPath: m_LocalScale.y
value: 0.33528
objectReference: {fileID: 0}
- target: {fileID: -4216859302048453862, guid: f38ffac9ed6617a4e87f152c2a12b0c0,
type: 3}
propertyPath: m_LocalScale.z
value: 0.33528
objectReference: {fileID: 0}
- target: {fileID: -927199367670048503, guid: f38ffac9ed6617a4e87f152c2a12b0c0,
type: 3}
propertyPath: m_Name
value: Cup
objectReference: {fileID: 0}
- target: {fileID: -927199367670048503, guid: f38ffac9ed6617a4e87f152c2a12b0c0,
type: 3}
propertyPath: m_IsActive
value: 1
objectReference: {fileID: 0}
- target: {fileID: 6200443131042155592, guid: f38ffac9ed6617a4e87f152c2a12b0c0,
type: 3}
propertyPath: m_Materials.Array.data[0]
value:
objectReference: {fileID: 2100000, guid: e40a729da5c11eb4b87470e30bde4312, type: 2}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: f38ffac9ed6617a4e87f152c2a12b0c0, type: 3}
--- !u!4 &5669328139120612401 stripped
Transform:
m_CorrespondingSourceObject: {fileID: -4216859302048453862, guid: f38ffac9ed6617a4e87f152c2a12b0c0,
type: 3}
m_PrefabInstance: {fileID: 853374032285843243}
m_PrefabAsset: {fileID: 0}
--- !u!1001 &2419814894761420575
PrefabInstance:
m_ObjectHideFlags: 0
......
This source diff could not be displayed because it is too large. You can view the blob instead.
fileFormatVersion: 2
guid: f7454de7619e58043bd3aad03242010a
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment