Commit 65dcd7af authored by wanqing's avatar wanqing

修改代码

parent 2e5a196a
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
using System.Collections.Generic; using System.Collections.Generic;
using UnityEngine; using UnityEngine;
using RayFire; using RayFire;
using EzySlice;
public class BombView : MonoBehaviour public class BombView : MonoBehaviour
{ {
...@@ -11,6 +12,8 @@ public class BombView : MonoBehaviour ...@@ -11,6 +12,8 @@ public class BombView : MonoBehaviour
public LineRenderer lineRenderer;//线段渲染器 public LineRenderer lineRenderer;//线段渲染器
public GameObject m_normalObj;//普通对象 public GameObject m_normalObj;//普通对象
public GameObject m_cutOffObj;//切割对象 public GameObject m_cutOffObj;//切割对象
public Material crossMaterial;
public LayerMask layerMask;
//public GameObject m_bombParticleObj;//炸弹粒子 //public GameObject m_bombParticleObj;//炸弹粒子
private RayfireBomb m_curBomb;//当前的炸弹 private RayfireBomb m_curBomb;//当前的炸弹
...@@ -156,7 +159,7 @@ public class BombView : MonoBehaviour ...@@ -156,7 +159,7 @@ public class BombView : MonoBehaviour
m_curPropModelObj.transform.position = m_propStartPos[4].position; m_curPropModelObj.transform.position = m_propStartPos[4].position;
m_curPropModelObj.transform.rotation = Quaternion.identity; m_curPropModelObj.transform.rotation = Quaternion.identity;
SetNormalState(false); SetNormalState(false);
//m_rayFireBlade = m_curPropModelObj.transform.Find("Props4/Props4/Blade_Target").GetComponent<RayfireBlade>(); m_rayFireBlade = m_curPropModelObj.transform.Find("Props4/Props4/Blade_Target").GetComponent<RayfireBlade>();
//m_rayFireBlade.SetTarget(m_childCutTrans.gameObject); //m_rayFireBlade.SetTarget(m_childCutTrans.gameObject);
Invoke("InvokeCreateProp", 0.1f); Invoke("InvokeCreateProp", 0.1f);
} }
...@@ -190,7 +193,7 @@ public class BombView : MonoBehaviour ...@@ -190,7 +193,7 @@ public class BombView : MonoBehaviour
{ {
if (m_curModelIndex == 3) if (m_curModelIndex == 3)
{ {
m_lerpPos.x = varPos.x - 2.5f; m_lerpPos.x = varPos.x - 1.5f;
} }
else else
{ {
...@@ -201,7 +204,7 @@ public class BombView : MonoBehaviour ...@@ -201,7 +204,7 @@ public class BombView : MonoBehaviour
{ {
if (m_curModelIndex == 3) if (m_curModelIndex == 3)
{ {
m_lerpPos.x = varPos.x - 2.5f; m_lerpPos.x = varPos.x - 1.5f;
} }
else else
{ {
...@@ -243,6 +246,10 @@ public class BombView : MonoBehaviour ...@@ -243,6 +246,10 @@ public class BombView : MonoBehaviour
{ {
m_bLerp = true; m_bLerp = true;
m_bIsFinishAni = true; m_bIsFinishAni = true;
if (m_curModelIndex == 1 || m_curModelIndex == 3)
{
m_curPropModelObj.transform.localScale = Vector3.one * 0.7f;
}
m_lerpPos = m_propStartPos[m_curModelIndex].position; m_lerpPos = m_propStartPos[m_curModelIndex].position;
} }
}); });
...@@ -350,7 +357,11 @@ public class BombView : MonoBehaviour ...@@ -350,7 +357,11 @@ public class BombView : MonoBehaviour
// m_curBombEffect = null; // m_curBombEffect = null;
// } // }
//}); //});
if(m_curModelIndex == 4) if(m_curPropModelObj)
{
m_curPropModelObj.transform.localScale = Vector3.one;
}
if (m_curModelIndex == 4)
{ {
InvokeRepeating("CalculateCutOffNum", 0.3f, 0.1f); InvokeRepeating("CalculateCutOffNum", 0.3f, 0.1f);
} }
...@@ -436,6 +447,47 @@ public class BombView : MonoBehaviour ...@@ -436,6 +447,47 @@ public class BombView : MonoBehaviour
m_lstDamage.Clear(); m_lstDamage.Clear();
m_lstDamage = null; m_lstDamage = null;
} }
void Slice()
{
Collider[] hits = Physics.OverlapBox(m_rayFireBlade.transform.position, new Vector3(5, 0.1f, 5), m_rayFireBlade.transform.rotation, layerMask);
Debug.LogError(hits.Length);
if (hits.Length <= 0)
return;
for (int i = 0; i < hits.Length; i++)
{
//SlicedHull hull = SliceObject(hits[i].gameObject, crossMaterial);
SlicedHull hull = SliceObject(hits[i].gameObject);
if (hull != null)
{
GameObject bottom = hull.CreateLowerHull(hits[i].gameObject, crossMaterial);
GameObject top = hull.CreateUpperHull(hits[i].gameObject, crossMaterial);
AddHullComponents(bottom);
AddHullComponents(top);
Destroy(hits[i].gameObject);
}
}
}
void AddHullComponents(GameObject go)
{
go.layer = 9;
Rigidbody rb = go.AddComponent<Rigidbody>();
rb.interpolation = RigidbodyInterpolation.Interpolate;
MeshCollider collider = go.AddComponent<MeshCollider>();
collider.convex = true;
rb.AddExplosionForce(100, go.transform.position, 20);
}
SlicedHull SliceObject(GameObject obj, Material crossSectionMaterial = null)
{
// slice the provided object using the transforms of this object
if (obj.GetComponent<MeshFilter>() == null)
return null;
return obj.Slice(m_rayFireBlade.transform.position, m_rayFireBlade.transform.up, crossSectionMaterial);
}
//刀处理 //刀处理
void UpdateKniftHandle() void UpdateKniftHandle()
{ {
...@@ -443,7 +495,8 @@ public class BombView : MonoBehaviour ...@@ -443,7 +495,8 @@ public class BombView : MonoBehaviour
{ {
return; return;
} }
if(m_bFinishCut/* && m_bDelayFinishCut*/) //Slice();
if (m_bFinishCut/* && m_bDelayFinishCut*/)
{ {
if (Input.GetMouseButtonDown(0)) if (Input.GetMouseButtonDown(0))
{ {
...@@ -492,41 +545,42 @@ public class BombView : MonoBehaviour ...@@ -492,41 +545,42 @@ public class BombView : MonoBehaviour
if(m_lineIndex == 0 && m_mouseUpIndex > 0 && m_curPropModelObj && !m_bFinishCut/* && !m_bDelayFinishCut*/) if(m_lineIndex == 0 && m_mouseUpIndex > 0 && m_curPropModelObj && !m_bFinishCut/* && !m_bDelayFinishCut*/)
{ {
m_curPropModelObj.transform.position = Vector3.Lerp(m_curPropModelObj.transform.position, m_secondBombPos,0.2f); m_curPropModelObj.transform.position = Vector3.Lerp(m_curPropModelObj.transform.position, m_secondBombPos,0.2f);
if(Vector3.SqrMagnitude(m_curPropModelObj.transform.position - m_secondBombPos) <= 0.5f)
if (Vector3.SqrMagnitude(m_curPropModelObj.transform.position - m_secondBombPos) <= 0.5f)
{ {
lineRenderer.positionCount = 0; lineRenderer.positionCount = 0;
m_bFinishCut = true; m_bFinishCut = true;
//m_rayFireBlade.SliceTarget(); m_rayFireBlade.SliceTarget();
//GameServices.timerServices.Push(this, 2.0f, delegate GameServices.timerServices.Push(this, 2.0f, delegate
//{ {
// if(BattleCtrl.instance.levelManager.CurLevelIndex == LevelEnum.levelOneIndex) if (BattleCtrl.instance.levelManager.CurLevelIndex == LevelEnum.levelOneIndex)
// { {
// if (m_mouseUpIndex == 1) if (m_mouseUpIndex == 1)
// { {
// m_childCutTrans = m_cutOffObj.transform.Find("column_root/column_fr_0"); m_childCutTrans = m_cutOffObj.transform.Find("column_root/column_fr_0");
// } }
// else if (m_mouseUpIndex == 2) else if (m_mouseUpIndex == 2)
// { {
// m_childCutTrans = m_cutOffObj.transform.Find("column_root/column_fr_0_root/column_fr_0_fr_0"); m_childCutTrans = m_cutOffObj.transform.Find("column_root/column_fr_0_root/column_fr_0_fr_0");
// } }
// } }
// else if(BattleCtrl.instance.levelManager.CurLevelIndex == LevelEnum.levelTwoIndex) else if (BattleCtrl.instance.levelManager.CurLevelIndex == LevelEnum.levelTwoIndex)
// { {
// if (m_mouseUpIndex == 1) if (m_mouseUpIndex == 1)
// { {
// m_childCutTrans = m_cutOffObj.transform.Find("people_root/people_fr_0"); m_childCutTrans = m_cutOffObj.transform.Find("people_root/people_fr_0");
// } }
// else if (m_mouseUpIndex == 2) else if (m_mouseUpIndex == 2)
// { {
// m_childCutTrans = m_cutOffObj.transform.Find("people_root/people_fr_0_root/people_fr_0_fr_0"); m_childCutTrans = m_cutOffObj.transform.Find("people_root/people_fr_0_root/people_fr_0_fr_0");
// } }
// } }
// if(m_childCutTrans) if (m_childCutTrans)
// { {
// m_bDelayFinishCut = true; m_bDelayFinishCut = true;
// m_rayFireBlade.SetTarget(m_childCutTrans.gameObject); m_rayFireBlade.SetTarget(m_childCutTrans.gameObject);
// } }
//}); });
} }
} }
//if (Input.GetMouseButtonDown(0)) //if (Input.GetMouseButtonDown(0))
......
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