Commit 8a4f80ac authored by wanqing's avatar wanqing

关卡逻辑修改

parent 8a2f5732
...@@ -66,6 +66,7 @@ ...@@ -66,6 +66,7 @@
<Compile Include="Assets\0A2_Scripts\Battle\BattleCtrl.cs" /> <Compile Include="Assets\0A2_Scripts\Battle\BattleCtrl.cs" />
<Compile Include="Assets\0A2_Scripts\Battle\Collision\GroundCollision.cs" /> <Compile Include="Assets\0A2_Scripts\Battle\Collision\GroundCollision.cs" />
<Compile Include="Assets\0A2_Scripts\Battle\Collision\SixLevelCollision.cs" /> <Compile Include="Assets\0A2_Scripts\Battle\Collision\SixLevelCollision.cs" />
<Compile Include="Assets\0A2_Scripts\Battle\Collision\SixLevelPlayerCollision.cs" />
<Compile Include="Assets\0A2_Scripts\Battle\Collision\ThirdLevelBoxCollision.cs" /> <Compile Include="Assets\0A2_Scripts\Battle\Collision\ThirdLevelBoxCollision.cs" />
<Compile Include="Assets\0A2_Scripts\Battle\Collision\ThirdLevelBoxTarget.cs" /> <Compile Include="Assets\0A2_Scripts\Battle\Collision\ThirdLevelBoxTarget.cs" />
<Compile Include="Assets\0A2_Scripts\Battle\Collision\WallCollsionX.cs" /> <Compile Include="Assets\0A2_Scripts\Battle\Collision\WallCollsionX.cs" />
......
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class SixLevelPlayerCollision : MonoBehaviour
{
public Transform m_topTrans;
private bool m_bCollider = true;
private bool m_bControlWin = true;
private Animator m_animator;
private float m_moveSpeed = 1.0f;
private float m_minHeight = -2.0f;
private float m_targetX = 1.06f;
private float m_tartgetY = 2.0f;
private Rigidbody m_playerRigid;
private void Awake()
{
m_animator = GetComponent<Animator>();
m_playerRigid = GetComponent<Rigidbody>();
}
private void OnCollisionEnter(Collision other)
{
if (other.collider.gameObject.CompareTag("Ball") && m_bCollider)
{
m_bCollider = false;
BattleCtrl.instance.OnBattleFail();
}
}
private void Update()
{
if (BattleCtrl.instance.isEndBattle)
{
return;
}
if (m_topTrans.localPosition.y <= 2.0f && m_bControlWin)
{
m_animator.Play("Run");
if (transform.position.x < m_targetX)
{
transform.Translate(Vector3.right * Time.deltaTime * m_moveSpeed, Space.World);
}
else
{
m_playerRigid.isKinematic = true;
transform.Translate(-Vector3.up * Time.deltaTime * m_moveSpeed, Space.World);
if (transform.position.y <= m_tartgetY)
{
m_bControlWin = false;
BattleCtrl.instance.OnBattleWin();
}
}
}
}
}
fileFormatVersion: 2
guid: af26f1f0a69f83f4a8c856f8a695a060
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
...@@ -76,19 +76,19 @@ public class SixthLevelTrigger : MonoBehaviour ...@@ -76,19 +76,19 @@ public class SixthLevelTrigger : MonoBehaviour
private int m_index = 0; private int m_index = 0;
private void Awake() private void Awake()
{ {
m_rigidArray = m_parent.GetComponentsInChildren<Rigidbody>(); //m_rigidArray = m_parent.GetComponentsInChildren<Rigidbody>();
m_boxCollider = m_targetBoxParent.GetComponentsInChildren<BoxCollider>(); //m_boxCollider = m_targetBoxParent.GetComponentsInChildren<BoxCollider>();
for (int i = 0; i < m_rigidArray.Length; i++) //for (int i = 0; i < m_rigidArray.Length; i++)
{ //{
if (m_rigidArray[i].gameObject.name == "Cube (54)") // if (m_rigidArray[i].gameObject.name == "Cube (54)")
{ // {
m_topTrans = m_rigidArray[i].transform; // m_topTrans = m_rigidArray[i].transform;
m_topRigidBody = m_rigidArray[i]; // m_topRigidBody = m_rigidArray[i];
break; // break;
} // }
} //}
m_playerRigid = m_player.GetComponent<Rigidbody>(); //m_playerRigid = m_player.GetComponent<Rigidbody>();
m_animator = m_player.GetComponent<Animator>(); //m_animator = m_player.GetComponent<Animator>();
//GameServices.timerServices.Push(this, 5, delegate //GameServices.timerServices.Push(this, 5, delegate
//{ //{
// for (int i = 0; i < m_rigidArray.Length; i++) // for (int i = 0; i < m_rigidArray.Length; i++)
...@@ -107,38 +107,38 @@ public class SixthLevelTrigger : MonoBehaviour ...@@ -107,38 +107,38 @@ public class SixthLevelTrigger : MonoBehaviour
{ {
if (m_rigidArray[i]) if (m_rigidArray[i])
{ {
m_rigidArray[i].isKinematic = true; //m_rigidArray[i].isKinematic = true;
} }
} }
} }
public void SetCollision() public void SetCollision()
{ {
m_index = 0; //m_index = 0;
for (int i = 0; i < m_boxCollider.Length; i++) //for (int i = 0; i < m_boxCollider.Length; i++)
{ //{
if (!m_boxCollider[i].enabled) // if (!m_boxCollider[i].enabled)
{ // {
m_index++; // m_index++;
} // }
} //}
} }
private void Update() private void Update()
{ {
if (m_bControl && m_index >= 10) if (m_bControl && m_index >= 10)
{ {
m_bControl = false; m_bControl = false;
for (int i = 0; i < m_rigidArray.Length; i++) //for (int i = 0; i < m_rigidArray.Length; i++)
{ //{
if (m_rigidArray[i]) // if (m_rigidArray[i])
{ // {
m_rigidArray[i].isKinematic = false; // m_rigidArray[i].isKinematic = false;
} // }
} //}
for (int i = 0; i < m_obstract.Length; i++) //for (int i = 0; i < m_obstract.Length; i++)
{ //{
m_obstract[i].SetActive(false); // m_obstract[i].SetActive(false);
} //}
m_topRigidBody.AddForce(Vector3.down * 1000, ForceMode.Impulse); //m_topRigidBody.AddForce(Vector3.down * 1000, ForceMode.Impulse);
} }
if (m_topTrans.localPosition.y <= 2.0f && m_bControlWin) if (m_topTrans.localPosition.y <= 2.0f && m_bControlWin)
{ {
......
...@@ -99,6 +99,7 @@ public class BattleUI : MonoBehaviour ...@@ -99,6 +99,7 @@ public class BattleUI : MonoBehaviour
//选择关卡 //选择关卡
void SelectLevel() void SelectLevel()
{ {
SetSymbolPos(0, 0);
m_selectLevelObj.SetActive(true); m_selectLevelObj.SetActive(true);
} }
//开始游戏 //开始游戏
...@@ -260,6 +261,7 @@ public class BattleUI : MonoBehaviour ...@@ -260,6 +261,7 @@ public class BattleUI : MonoBehaviour
m_recordRayFireList.Add(varRayFire.transform.GetChild(i).gameObject); m_recordRayFireList.Add(varRayFire.transform.GetChild(i).gameObject);
} }
} }
SetSymbolPos(0, 0);
} }
//设置战斗UI状态 //设置战斗UI状态
public void SetBattleObjState(bool bool_) public void SetBattleObjState(bool bool_)
......
...@@ -2,9 +2,11 @@ ...@@ -2,9 +2,11 @@
using System.Collections.Generic; using System.Collections.Generic;
using UnityEngine; using UnityEngine;
//using UnityEditor; //using UnityEditor;
using Obi;
public class ChainHandle : MonoBehaviour public class ChainHandle : MonoBehaviour
{ {
public ObiSolver m_solver;
public Rigidbody m_steelBallRigidBody;//铁球 public Rigidbody m_steelBallRigidBody;//铁球
public Transform SteelBallTrans => m_steelBallRigidBody.transform; public Transform SteelBallTrans => m_steelBallRigidBody.transform;
private RectTransform m_thumbRT;//摇杆 private RectTransform m_thumbRT;//摇杆
...@@ -14,7 +16,7 @@ public class ChainHandle : MonoBehaviour ...@@ -14,7 +16,7 @@ public class ChainHandle : MonoBehaviour
private Vector2 m_DragPos; private Vector2 m_DragPos;
private Rigidbody m_rigidBody;//自身body private Rigidbody m_rigidBody;//自身body
private float m_topColliderPosY;//Y位置 private float m_topColliderPosY;//Y位置
private Vector3 m_maxHeightBallPos = new Vector3(2.075f, 3.0f, -3.1f);//铁球最大高度 private Vector3 m_maxHeightBallPos = new Vector3(2.075f, 3.0f, -6.5f);//铁球最大高度
private Transform m_parentTrans;//父节点 private Transform m_parentTrans;//父节点
// Start is called before the first frame update // Start is called before the first frame update
private void Awake() private void Awake()
...@@ -205,22 +207,29 @@ public class ChainHandle : MonoBehaviour ...@@ -205,22 +207,29 @@ public class ChainHandle : MonoBehaviour
{ {
if (hit.collider.gameObject.CompareTag("Target")) if (hit.collider.gameObject.CompareTag("Target"))
{ {
//m_solver.simulateWhenInvisible = false;
//十字架位置 //十字架位置
float varX = (Input.mousePosition.x - Screen.width / 2f) / (Screen.width / GlobalConfig.NormalWidth); float varX = (Input.mousePosition.x - Screen.width / 2f) / (Screen.width / GlobalConfig.NormalWidth);
float varY = (Input.mousePosition.y - Screen.height / 2f) / (Screen.width / GlobalConfig.NormalWidth); float varY = (Input.mousePosition.y - Screen.height / 2f) / (Screen.width / GlobalConfig.NormalWidth);
BattleCtrl.instance.battleUI.SetSymbolPos(varX, varY); BattleCtrl.instance.battleUI.SetSymbolPos(varX, varY);
//设置铁球位置 //设置铁球位置
m_steelBallRigidBody.isKinematic = true; m_steelBallRigidBody.isKinematic = true;
m_steelBallRigidBody.Sleep();
m_steelBallRigidBody.transform.localPosition = m_maxHeightBallPos; m_steelBallRigidBody.transform.localPosition = m_maxHeightBallPos;
m_steelBallRigidBody.transform.localRotation = Quaternion.identity; m_steelBallRigidBody.transform.localRotation = Quaternion.identity;
Vector3 varVec3 = m_parentTrans.position; Vector3 varVec3 = m_parentTrans.position;
varVec3.x = hit.point.x - m_maxHeightBallPos.x; varVec3.x = hit.point.x - m_maxHeightBallPos.x;
varVec3.y = hit.point.y; varVec3.y = hit.point.y + 6.5f;
m_parentTrans.position = varVec3; m_parentTrans.position = varVec3;
GameServices.timerServices.Push(this, 1, delegate GameServices.timerServices.Push(this, 1, delegate
{ {
m_steelBallRigidBody.isKinematic = false; // if(m_solver)
// {
// m_solver.simulateWhenInvisible = true;
// }
if (m_steelBallRigidBody)
{
m_steelBallRigidBody.isKinematic = false;
}
}); });
} }
} }
......
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