Commit 13c32f10 authored by wanqing's avatar wanqing

磁铁逻辑

parent 3b4fdf45
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
fileFormatVersion: 2
guid: 9bc20efca25e7b04a9f6217b6f5a3470
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class BossView : MonoBehaviour
{
[Header("子弹父节点")]
public Transform m_parent;
[Header("旋转速度")]
public float m_rotateSpeed = 0.0f;
[Header("过多久发射子弹")]
public float m_waitTime = 0.0f;
[Header("发射子弹间隔时间")]
public float m_intervalTime = 0.0f;
[Header("是否移动")]
public bool m_isMove = false;
[Header("移动速度")]
public float m_moveSpeed = 0.0f;
private Animator m_animator;
private Transform[] m_bulletTrans;
private float m_time = 0.0f;
private bool m_bControl = false;
private int m_index = 1;
private List<Vector3> m_startPosList = new List<Vector3>();//初始位置
private Vector3 m_movePointA;
private Vector3 m_movePointB;
private bool m_bIsForWard = true;//是否正向运动,开始默认正向
// Start is called before the first frame update
void Start()
{
m_animator = GetComponent<Animator>();
m_animator.Play("Run");
m_bulletTrans = m_parent.GetComponentsInChildren<Transform>();
for (int i = 1; i < m_bulletTrans.Length; i++)
{
m_startPosList.Add(m_bulletTrans[i].localPosition);
}
m_movePointA = new Vector3(transform.position.x, transform.position.y, 3);
m_movePointB = new Vector3(transform.position.x, transform.position.y, -3);
}
//死亡
public void Die()
{
m_animator.Play("Die");
}
//重置状态
public void ResetState()
{
m_animator.Play("Run");
m_time = 0.0f;
m_index = 1;
m_bControl = false;
CancelInvokeBullet();
for (int i = 1; i < m_bulletTrans.Length; i++)
{
BulletDamageView varDamage = m_bulletTrans[i].GetComponent<BulletDamageView>();
if (varDamage)
{
varDamage.ResetState();
}
BulletSouthView varSouth = m_bulletTrans[i].GetComponent<BulletSouthView>();
if (varSouth)
{
varSouth.ResetState();
}
BulletNorthView varNorth = m_bulletTrans[i].GetComponent<BulletNorthView>();
if (varNorth)
{
varNorth.ResetState();
}
m_bulletTrans[i].localPosition = m_startPosList[i - 1];
}
}
//碰到子弹
private void OnCollisionEnter(Collision other)
{
if (other.collider.CompareTag("Bullet"))
{
BulletNorthView varNorthBullet = other.collider.GetComponent<BulletNorthView>();
if (varNorthBullet)
{
BattleCtrl.instance.battleUI.ReduceBossBlood();
varNorthBullet.SetActiveState(false);
}
BulletSouthView varSouthBullet = other.collider.GetComponent<BulletSouthView>();
if (varSouthBullet)
{
BattleCtrl.instance.battleUI.ReduceBossBlood();
varSouthBullet.SetActiveState(false);
}
}
}
// Update is called once per frame
void Update()
{
m_time += Time.deltaTime;
if(m_time >= m_waitTime && !m_bControl)
{
m_bControl = true;
InvokeRepeating("SendBullet", 0.0f, m_intervalTime);
}
for (int i = 1; i < m_bulletTrans.Length; i++)
{
if(i >= m_index)
{
m_bulletTrans[i].transform.RotateAround(transform.position, -transform.up, Time.deltaTime * m_rotateSpeed);
}
}
UpdateUIBossBloodPos();
UpdateMove();
}
//发射子弹
void SendBullet()
{
if(m_index >= m_bulletTrans.Length)
{
return;
}
m_index++;
BulletDamageView varDamage = m_bulletTrans[m_index - 1].GetComponent<BulletDamageView>();
if(varDamage)
{
varDamage.StartMove(m_parent);
}
BulletSouthView varSouth = m_bulletTrans[m_index - 1].GetComponent<BulletSouthView>();
if (varSouth)
{
varSouth.StartMove(m_parent);
}
BulletNorthView varNorth = m_bulletTrans[m_index - 1].GetComponent<BulletNorthView>();
if (varNorth)
{
varNorth.StartMove(m_parent);
}
}
//更新UI血量位置
void UpdateUIBossBloodPos()
{
Vector3 varVec3 = Camera.main.WorldToScreenPoint(transform.position);
varVec3.x = (varVec3.x - Screen.width / 2f) / (Screen.height / GlobalConfig.NormalHeight);
varVec3.y = (varVec3.y - Screen.height / 2f) / (Screen.height / GlobalConfig.NormalHeight) + 200.0f;
BattleCtrl.instance.battleUI.SetBossBloodPos(varVec3.x, varVec3.y);
}
//移动
void UpdateMove()
{
if(m_isMove)
{
Vector3 varDir;
if (m_bIsForWard)
{
varDir = m_movePointA - transform.position;
transform.position += varDir.normalized * Time.deltaTime * m_moveSpeed;
if (Vector3.SqrMagnitude(varDir) <= 0.2f)
{
m_bIsForWard = false;
}
}
else
{
varDir = m_movePointB - transform.position;
transform.position += varDir.normalized * Time.deltaTime * m_moveSpeed;
if (Vector3.SqrMagnitude(varDir) <= 0.2f)
{
m_bIsForWard = true;
}
}
Vector3 targetDir = varDir.normalized;
if (!targetDir.Equals(Vector3.zero))
{
Quaternion targetRotation = Quaternion.LookRotation(targetDir, Vector3.up);
transform.rotation = Quaternion.Lerp(transform.rotation, targetRotation, 0.2f);
}
}
}
void CancelInvokeBullet()
{
if (IsInvoking("SendBullet"))
{
CancelInvoke("SendBullet");
}
}
private void OnDestroy()
{
CancelInvokeBullet();
}
}
fileFormatVersion: 2
guid: 1c4613c4851e6c04d878802aa788b530
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CoinPropView : MonoBehaviour
{
private bool m_bControlCollison = false;
private void OnEnable()
{
m_bControlCollison = false;
}
private void OnDisable()
{
m_bControlCollison = false;
}
private void OnCollisionEnter(Collision other)
{
if (other.collider.CompareTag("Player") && !m_bControlCollison)
{
m_bControlCollison = true;
BattleCtrl.instance.battleUI.SetCoin(1);
gameObject.SetActive(false);
}
}
}
fileFormatVersion: 2
guid: aa8223310feb46944bf4c8d07dbdad30
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class DoorView : MonoBehaviour
{
//public Transform m_triggerTrans;
private bool m_bControlCollison = false;
private void OnTriggerEnter(Collider other)
{
if (other.CompareTag("Player") && !m_bControlCollison)
{
m_bControlCollison = true;
if (BattleCtrl.instance.battleUI.keyNum > 0)
{
BattleCtrl.instance.OnBattleWin();
}
}
}
private void OnTriggerExit(Collider other)
{
if (other.CompareTag("Player") && m_bControlCollison)
{
m_bControlCollison = false;
}
}
//private void Update()
//{
// if(!m_bControlCollison)
// {
// Vector3 varDir = m_triggerTrans.position - BattleCtrl.instance.levelManager.curLevel.magnetView.transform.position;
// Debug.LogError(Vector3.SqrMagnitude(varDir));
// if (Vector3.SqrMagnitude(varDir) <= 1.0f && BattleCtrl.instance.battleUI.keyNum > 0)
// {
// m_bControlCollison = true;
// BattleCtrl.instance.OnBattleWin();
// }
// }
//}
}
fileFormatVersion: 2
guid: 8d4e6f170c751f54f87d493c9e28ed65
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class KeyView : MonoBehaviour
{
private bool m_bControlCollison = false;
private void OnEnable()
{
m_bControlCollison = false;
}
private void OnDisable()
{
m_bControlCollison = false;
}
private void OnCollisionEnter(Collision other)
{
if (other.collider.CompareTag("Player") && !m_bControlCollison)
{
m_bControlCollison = true;
BattleCtrl.instance.battleUI.AddKey();
gameObject.SetActive(false);
}
}
}
fileFormatVersion: 2
guid: 56875c54f02a84143841ef43c93c9433
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class LargeMagnetView : MonoBehaviour
{
[Header("是否开启")]
public bool m_isOpen = false;
[Header("磁场范围")]
[Range(0, 20)]
public float m_range = 0.0f;
[Header("磁场强度")]
public float m_power = 0.0f;
[Header("是否生成机关")]
public bool m_bIsTrigger = false;
[Header("生成机关位置")]
public Vector3 m_triggerPos = Vector3.zero;
[Header("南极图标")]
public GameObject m_southObj;//南极obj
[Header("北极图标")]
public GameObject m_northObj;//北极obj
[Header("南极材质")]
public Material m_southMat;
[Header("北极材质")]
public Material m_northMat;
public MeshRenderer[] m_poleMR;//mesh
private bool m_bControlCollison = true;
private GameObject m_triggerObj;//机关
private bool m_bSouthPole = true;//默认南极
private bool m_bAddPower = false;//增加磁力
private bool m_bTrap = false;//设置陷阱
private TrapView m_trapView;//陷阱脚本
private MoveView m_moveView;//移动触发器
// Update is called once per frame
private void Start()
{
}
private void OnCollisionEnter(Collision other)
{
if(other.collider.CompareTag("Player") && m_bControlCollison)
{
m_bControlCollison = false;
m_trapView = GetComponent<TrapView>();
if (m_trapView && m_trapView.enabled)
{
BattleCtrl.instance.battleUI.ReduceBlood();
}
}
}
private void OnCollisionExit(Collision other)
{
if (other.collider.CompareTag("Player") && !m_bControlCollison)
{
m_bControlCollison = true;
}
}
//设置机关状态
public void SetTriggerActive(bool value)
{
if(m_triggerObj)
{
m_triggerObj.SetActive(value);
}
}
//设置磁极变换
public void SetMagnetChange()
{
m_bSouthPole = !m_bSouthPole;
for (int i = 0; i < m_poleMR.Length; i++)
{
m_poleMR[i].sharedMaterial = m_bSouthPole ? m_southMat : m_northMat;
}
m_southObj.SetActive(m_bSouthPole);
m_northObj.SetActive(!m_bSouthPole);
}
//设置磁力变化
public void SetMagnetPower(float addPower)
{
m_bAddPower = !m_bAddPower;
if(m_bAddPower)
{
m_power += addPower;
}
else
{
m_power -= addPower;
}
}
//设置陷阱状态
public void SetTrap()
{
m_bTrap = !m_bTrap;
if (m_bTrap)
{
if(!m_trapView)
{
m_trapView = gameObject.AddComponent<TrapView>();
}
}
if (m_trapView)
{
m_trapView.enabled = m_bTrap;
}
}
//设置移动触发器
public void SetMove()
{
if (!m_moveView)
{
m_moveView = gameObject.AddComponent<MoveView>();
}
}
void Update()
{
if(m_isOpen)
{
MagnetView varPlayer = BattleCtrl.instance.levelManager.curLevel.magnetView;
Vector3 varDir = varPlayer.transform.position - transform.position;
if (varPlayer && Vector3.SqrMagnitude(varDir) <= m_range*m_range)
{
if(varPlayer.isSouthPole)
{
float varPole = m_bSouthPole ? 1 : -1;
varPlayer.AddForce(varPole * varDir.normalized * m_power);
}
else
{
float varPole = !m_bSouthPole ? 1 : -1;
varPlayer.AddForce(varPole * varDir.normalized * m_power);
}
}
}
if(m_bIsTrigger)
{
if (!m_triggerObj)
{
m_triggerObj = PoolManager.Instance.GetObjectFromPool(CacheManager.Instance.triggerObj);
m_triggerObj.transform.position = m_triggerPos;
m_triggerObj.GetComponent<TriggerView>().SetLargeAttach(this);
}
}
}
}
fileFormatVersion: 2
guid: d4049f21ecd219d4cb636848b4dd1fc0
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System;
public class MagnetView : MonoBehaviour
{
[Header("跳跃速度")]
public float m_spaceSpeed = 0.0f;
[Header("移动速度")]
public float m_moveSpeed = 0.0f;
[Header("磁场范围")]
[Range(0, 20)]
public float m_range = 0.0f;
[Header("磁场强度")]
public float m_power = 0.0f;
[Header("子弹被吸附距离")]
public float m_disBulletAttach = 0.0f;
[Header("相机与人物距离")]
public Vector3 offset; //游戏人物与 相机的差
[Header("南极图标")]
public GameObject m_southObj;//南极obj
[Header("北极图标")]
public GameObject m_northObj;//北极obj
[Header("南极材质")]
public Material m_southMat;
[Header("北极材质")]
public Material m_northMat;
public MeshRenderer[] m_poleMR;//mesh
public float magnetRange => m_range;
public float magnetPower => m_power;
public float disBulletAttach => m_disBulletAttach;
private bool m_bSouthPole = true;//默认南极
public bool isSouthPole => m_bSouthPole;
private Rigidbody m_rigidBody;//刚体
// Start is called before the first frame update
void Start()
{
m_rigidBody = GetComponent<Rigidbody>();
string varLevelKey = BattleCtrl.instance.levelManager.CurLevelIndex.ToString();
if (LocalRecord.HasKey(varLevelKey))
{
string varValue = LocalRecord.GetStringRecord(varLevelKey);
Vector3 varPos = Vector3.zero;
varPos.x = Convert.ToSingle(varValue.Split('*')[0]);
varPos.y = Convert.ToSingle(varValue.Split('*')[1]);
varPos.z = Convert.ToSingle(varValue.Split('*')[2]);
transform.position = varPos;
}
}
//碰到子弹
private void OnCollisionEnter(Collision other)
{
if (other.collider.CompareTag("Bullet"))
{
BulletDamageView varBullet = other.collider.GetComponent<BulletDamageView>();
if (varBullet)
{
BattleCtrl.instance.battleUI.ReduceBlood();
varBullet.SetActiveState(false);
}
}
}
//受磁铁作用力
public void AddForce(Vector3 force)
{
m_rigidBody.AddForce(force, ForceMode.Impulse);
}
// Update is called once per frame
void Update()
{
if(BattleCtrl.instance.isEndBattle)
{
return;
}
float KeyVertical = 0.0f;
float KeyHorizontal = 0.0f;
if (Input.GetKey(KeyCode.W))
{
KeyVertical = Input.GetAxis("Vertical");
transform.Translate(transform.forward * m_moveSpeed * Time.deltaTime, Space.World);
}
else if (Input.GetKey(KeyCode.S))
{
KeyVertical = Input.GetAxis("Vertical");
transform.Translate(transform.forward * m_moveSpeed * Time.deltaTime, Space.World);
}
if (Input.GetKey(KeyCode.A))
{
KeyHorizontal = Input.GetAxis("Horizontal");
transform.Translate(transform.forward * m_moveSpeed * Time.deltaTime, Space.World);
}
else if (Input.GetKey(KeyCode.D))
{
KeyHorizontal = Input.GetAxis("Horizontal");
transform.Translate(transform.forward * m_moveSpeed * Time.deltaTime, Space.World);
}
if (Input.GetKey(KeyCode.Space))
{
transform.Translate(transform.up * m_spaceSpeed * Time.deltaTime, Space.World);
}
//获取控制的方向, 上下左右,
if(KeyVertical != 0.0f || KeyHorizontal != 0.0f)
{
Vector3 newDir = new Vector3(KeyHorizontal, 0, KeyVertical).normalized;
transform.forward = Vector3.Lerp(transform.forward, newDir, 0.8f);
}
//镜头跟随
Camera.main.transform.position = transform.position + offset;
ChangeMagnetPole();
UpdateUIBloodPos();
}
//鼠标左键变换磁极
void ChangeMagnetPole()
{
if(Input.GetMouseButtonUp(0))
{
m_bSouthPole = !m_bSouthPole;
for(int i = 0;i<m_poleMR.Length;i++)
{
m_poleMR[i].sharedMaterial = m_bSouthPole ? m_southMat : m_northMat;
}
m_southObj.SetActive(m_bSouthPole);
m_northObj.SetActive(!m_bSouthPole);
}
}
//更新UI血量位置
void UpdateUIBloodPos()
{
Vector3 varVec3 = Camera.main.WorldToScreenPoint(transform.position);
varVec3.x = (varVec3.x - Screen.width / 2f) / (Screen.height / GlobalConfig.NormalHeight);
varVec3.y = (varVec3.y - Screen.height / 2f) / (Screen.height / GlobalConfig.NormalHeight)+150.0f;
BattleCtrl.instance.battleUI.SetBloodPos(varVec3.x, varVec3.y);
}
}
fileFormatVersion: 2
guid: aa7c54b7afb35fc4d87ca08e740f5da6
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using DG.Tweening;
public class MoveView : MonoBehaviour
{
[Header("是否移动")]
public bool m_isMove = false;
[Header("移动点")]
public Vector3 m_movePoint = Vector3.zero;
[Header("正向速度")]
public float m_forwardSpeed = 0.0f;
[Header("反向速度")]
public float m_backSpeed = 0.0f;
private bool m_bIsForWard = true;//是否正向运动,开始默认正向
private Vector3 m_startPos = Vector3.zero;//开始的位置
private void Start()
{
m_startPos = transform.position;
}
// Update is called once per frame
void Update()
{
if(m_isMove)
{
if(m_bIsForWard)
{
Vector3 varDir = m_movePoint - transform.position;
transform.position += varDir.normalized * Time.deltaTime * m_forwardSpeed;
if(Vector3.SqrMagnitude(varDir) <= 0.2f)
{
m_bIsForWard = false;
}
}
else
{
Vector3 varDir = m_startPos - transform.position;
transform.position += varDir.normalized * Time.deltaTime * m_backSpeed;
if (Vector3.SqrMagnitude(varDir) <= 0.2f)
{
m_bIsForWard = true;
}
}
}
}
}
fileFormatVersion: 2
guid: f3db11fde8ed3364592dec8772eae299
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class NpcView : MonoBehaviour
{
private bool m_bShow = false;
// Update is called once per frame
void Update()
{
if (Input.GetMouseButtonUp(0))
{
Clicked();
}
if(m_bShow)
{
Vector3 varVec3 = Camera.main.WorldToScreenPoint(transform.position);
varVec3.x = (varVec3.x - Screen.width / 2f) / (Screen.height / GlobalConfig.NormalHeight);
varVec3.y = (varVec3.y - Screen.height / 2f) / (Screen.height / GlobalConfig.NormalHeight) + 250.0f;
BattleCtrl.instance.battleUI.SetNpcDialogue(varVec3.x, varVec3.y);
}
}
//点击npc对话
void Clicked()
{
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hit = new RaycastHit();
if (Physics.Raycast(ray, out hit))
{
if (hit.collider.CompareTag("Npc") && !m_bShow)
{
m_bShow = true;
}
}
}
}
fileFormatVersion: 2
guid: b6c14cab9873dda43b15cfdd09bc07ed
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System;
public class RecordPointView : MonoBehaviour
{
private bool m_bControlCollison = false;
private void OnTriggerEnter(Collider other)
{
if (other.CompareTag("Player") && !m_bControlCollison)
{
m_bControlCollison = true;
Vector3 varPos = BattleCtrl.instance.levelManager.curLevel.magnetView.transform.position;
string varStr = string.Format("{0:F1}*{1:F1}*{2:F1}", varPos.x, varPos.y, varPos.z);
String varLevelKey = BattleCtrl.instance.levelManager.CurLevelIndex.ToString();
if (LocalRecord.HasKey(varLevelKey))
{
string varCurRecord = LocalRecord.GetStringRecord(varLevelKey);
float varX = Convert.ToSingle(varCurRecord.Split('*')[0]);
if (varPos.x < varX)
{
LocalRecord.SetStringRecord(varLevelKey, varStr);
}
}
else
{
LocalRecord.SetStringRecord(varLevelKey, varStr);
}
}
}
}
fileFormatVersion: 2
guid: ae2efb602da098345aed3151cc7d8211
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class SmallMagnetView : MonoBehaviour
{
[Header("是否开启")]
public bool m_isOpen = false;
[Header("磁场范围")]
[Range(0, 20)]
public float m_range = 0.0f;
[Header("磁场强度")]
public float m_power = 0.0f;
[Header("是否生成机关")]
public bool m_bIsTrigger = false;
[Header("生成机关位置")]
public Vector3 m_triggerPos = Vector3.zero;
[Header("南极图标")]
public GameObject m_southObj;//南极obj
[Header("北极图标")]
public GameObject m_northObj;//北极obj
[Header("南极材质")]
public Material m_southMat;
[Header("北极材质")]
public Material m_northMat;
public MeshRenderer[] m_poleMR;//mesh
private bool m_bControlCollison = true;
private GameObject m_triggerObj;//机关
private bool m_bSouthPole = true;//默认南极
private bool m_bAddPower = false;//增加磁力
private bool m_bTrap = false;//设置陷阱
private TrapView m_trapView;//陷阱脚本
private MoveView m_moveView;//移动触发器
// Update is called once per frame
private void Start()
{
}
private void OnCollisionEnter(Collision other)
{
if (other.collider.CompareTag("Player") && m_bControlCollison)
{
m_bControlCollison = false;
m_trapView = GetComponent<TrapView>();
if (m_trapView && m_trapView.enabled)
{
BattleCtrl.instance.battleUI.ReduceBlood();
}
}
}
private void OnCollisionExit(Collision other)
{
if (other.collider.CompareTag("Player") && !m_bControlCollison)
{
m_bControlCollison = true;
}
}
//设置机关状态
public void SetTriggerActive(bool value)
{
if (m_triggerObj)
{
m_triggerObj.SetActive(value);
}
}
//设置磁极变换
public void SetMagnetChange()
{
m_bSouthPole = !m_bSouthPole;
for (int i = 0; i < m_poleMR.Length; i++)
{
m_poleMR[i].sharedMaterial = m_bSouthPole ? m_southMat : m_northMat;
}
m_southObj.SetActive(m_bSouthPole);
m_northObj.SetActive(!m_bSouthPole);
}
//设置磁力变化
public void SetMagnetPower(float addPower)
{
m_bAddPower = !m_bAddPower;
if (m_bAddPower)
{
m_power += addPower;
}
else
{
m_power -= addPower;
}
}
//设置陷阱状态
public void SetTrap()
{
m_bTrap = !m_bTrap;
if (m_bTrap)
{
if (!m_trapView)
{
m_trapView = gameObject.AddComponent<TrapView>();
}
}
if (m_trapView)
{
m_trapView.enabled = m_bTrap;
}
}
//设置移动触发器
public void SetMove()
{
if (!m_moveView)
{
m_moveView = gameObject.AddComponent<MoveView>();
}
}
void Update()
{
if (m_isOpen)
{
MagnetView varPlayer = BattleCtrl.instance.levelManager.curLevel.magnetView;
Vector3 varDir = varPlayer.transform.position - transform.position;
if (varPlayer && Vector3.SqrMagnitude(varDir) <= m_range * m_range)
{
if (varPlayer.isSouthPole)
{
float varPole = m_bSouthPole ? 1 : -1;
varPlayer.AddForce(varPole * varDir.normalized * m_power);
}
else
{
float varPole = !m_bSouthPole ? 1 : -1;
varPlayer.AddForce(varPole * varDir.normalized * m_power);
}
}
}
if (m_bIsTrigger)
{
if (!m_triggerObj)
{
m_triggerObj = PoolManager.Instance.GetObjectFromPool(CacheManager.Instance.triggerObj);
m_triggerObj.transform.position = m_triggerPos;
m_triggerObj.GetComponent<TriggerView>().SetSmallAttach(this);
}
}
}
}
fileFormatVersion: 2
guid: 01c09f6adbeb79d41bae6e8c973febd7
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class TrapView : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
}
}
fileFormatVersion: 2
guid: 1225378698b268741ac64ff1b78f3961
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class TriggerView : MonoBehaviour
{
[Header("是否变换磁极")]
public bool m_bIsChangePole = false;
[Header("是否开启循环")]
public bool m_bIsChangePoleLoop = false;
[Header("循环间隔")]
public float m_changePoleLoopTime = 0.0f;
[Header("是否变换磁力")]
[Space(30)]
public bool m_bIsChangePower = false;
[Header("磁力变化大小")]
public float m_powerChangeSize = 0.0f;
[Header("是否开启循环")]
public bool m_bIsChangePowerLoop = false;
[Header("循环间隔")]
public float m_changePowerLoopTime = 0.0f;
[Header("是否变成陷阱")]
[Space(30)]
public bool m_bIsChangeToTrap = false;
[Header("是否开启循环")]
public bool m_bIsChangeToTrapLoop = false;
[Header("循环间隔")]
public float m_changeToTrapLoopTime = 0.0f;
[Header("移动触发器")]
[Space(30)]
public bool m_bIsMoveTrigger = false;
private bool m_bControlCollison = false;
private bool m_bControlPole = true;
private bool m_bControlPoleLoop = true;
private bool m_bControlPower = true;
private bool m_bControlPowerLoop = true;
private bool m_bControlTrap = true;
private bool m_bControlTrapLoop = true;
private bool m_bControlMoveTrigger = true;
private LargeMagnetView m_largeView;
private SmallMagnetView m_smallView;
private string m_strSetMagnetChange = "SetMagnetChange";
private string m_strSetMagnetPower = "SetMagnetPower";
private string m_strSetTrap = "SetTrap";
// Start is called before the first frame update
void Start()
{
}
//关联重磁铁
public void SetLargeAttach(LargeMagnetView view)
{
m_largeView = view;
}
//关联轻磁铁
public void SetSmallAttach(SmallMagnetView view)
{
m_smallView = view;
}
private void OnCollisionEnter(Collision other)
{
if (other.collider.CompareTag("Player") && !m_bControlCollison)
{
m_bControlCollison = true;
}
}
//设置磁极变换
void SetMagnetChange()
{
if(m_largeView)
{
m_largeView.SetMagnetChange();
}
if (m_smallView)
{
m_smallView.SetMagnetChange();
}
}
//设置磁力变化
void SetMagnetPower()
{
if (m_largeView)
{
m_largeView.SetMagnetPower(m_powerChangeSize);
}
if (m_smallView)
{
m_smallView.SetMagnetPower(m_powerChangeSize);
}
}
//设置陷阱状态
void SetTrap()
{
if (m_largeView)
{
m_largeView.SetTrap();
}
if (m_smallView)
{
m_smallView.SetTrap();
}
}
//移动触发器
void SetMoveTrigger()
{
if (m_largeView)
{
m_largeView.SetMove();
}
if (m_smallView)
{
m_smallView.SetMove();
}
}
// Update is called once per frame
void Update()
{
if(m_bControlCollison)
{
//磁极变换
if(m_bIsChangePole && m_bControlPole)
{
m_bControlPole = false;
SetMagnetChange();
}
if(m_bIsChangePoleLoop && m_bControlPoleLoop)
{
m_bControlPoleLoop = false;
InvokeRepeating(m_strSetMagnetChange, 0.2f, m_changePoleLoopTime);
}
//磁力变化
if(m_bIsChangePower && m_bControlPower)
{
m_bControlPower = false;
SetMagnetPower();
}
if(m_bIsChangePowerLoop && m_bControlPowerLoop)
{
m_bControlPowerLoop = false;
InvokeRepeating(m_strSetMagnetPower, 0.2f, m_changePowerLoopTime);
}
//陷阱
if(m_bIsChangeToTrap && m_bControlTrap)
{
m_bControlTrap = false;
SetTrap();
}
if(m_bIsChangeToTrapLoop && m_bControlTrapLoop)
{
m_bControlTrapLoop = false;
InvokeRepeating(m_strSetTrap, 0.2f, m_changeToTrapLoopTime);
}
//移动触发器
if(m_bIsMoveTrigger && m_bControlMoveTrigger)
{
m_bControlMoveTrigger = false;
SetMoveTrigger();
}
}
}
private void OnDestroy()
{
if(IsInvoking(m_strSetMagnetChange))
{
CancelInvoke(m_strSetMagnetChange);
}
if (IsInvoking(m_strSetMagnetPower))
{
CancelInvoke(m_strSetMagnetPower);
}
if (IsInvoking(m_strSetTrap))
{
CancelInvoke(m_strSetTrap);
}
}
}
fileFormatVersion: 2
guid: beff931c9cd6e6c43a9da06d0c5a905d
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: 32e1ce9731199a0429ef117885b14366
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class BulletDamageView : MonoBehaviour
{
[Header("速度")]
public float m_speed = 0.0f;
private bool m_bMove = false;
private Vector3 m_dir = Vector3.zero;//方向
private Transform m_bossTrans;
// Start is called before the first frame update
void Start()
{
}
//开始移动
public void StartMove(Transform bossTrans)
{
m_bossTrans = bossTrans;
m_bMove = true;
MagnetView varPlayer = BattleCtrl.instance.levelManager.curLevel.magnetView;
m_dir = varPlayer.transform.position - transform.position;
transform.SetParent(null);
}
//设置激活状态
public void SetActiveState(bool value)
{
gameObject.SetActive(value);
if(!value)
{
m_bMove = false;
}
}
//重置状态
public void ResetState()
{
m_bMove = false;
gameObject.SetActive(true);
transform.SetParent(m_bossTrans);
}
// Update is called once per frame
void Update()
{
if (BattleCtrl.instance.isEndBattle)
{
return;
}
if (m_bMove)
{
transform.position += (m_dir.normalized) * Time.deltaTime * m_speed;
Vector3 varPos = transform.localPosition;
if(varPos.y < 0.48)
{
varPos.y = 0.48f;
}
transform.localPosition = varPos;
MagnetView varPlayer = BattleCtrl.instance.levelManager.curLevel.magnetView;
if(Vector3.SqrMagnitude(varPlayer.transform.position - transform.position) >= 400)
{
SetActiveState(false);
}
}
}
}
fileFormatVersion: 2
guid: 52c1dc81878d32241980aa22a956c808
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class BulletNorthView : MonoBehaviour
{
[Header("速度")]
public float m_speed = 0.0f;
[Header("旋转速度")]
public float m_rotateSpeed = 0.0f;
private bool m_bMove = false;
private bool m_bControl = true;
private Rigidbody m_rigidBody;
private Transform m_bossTrans;
// Start is called before the first frame update
void Start()
{
m_rigidBody = GetComponent<Rigidbody>();
}
//开始移动
public void StartMove(Transform bossTrans)
{
m_bossTrans = bossTrans;
m_bMove = true;
transform.SetParent(null);
}
//设置激活状态
public void SetActiveState(bool value)
{
gameObject.SetActive(value);
if (!value)
{
m_bMove = false;
}
}
//重置状态
public void ResetState()
{
m_bMove = false;
gameObject.SetActive(true);
m_bControl = true;
m_rigidBody.isKinematic = true;
transform.SetParent(m_bossTrans);
}
// Update is called once per frame
void Update()
{
if (BattleCtrl.instance.isEndBattle)
{
return;
}
if (m_bMove && m_bControl)
{
MagnetView varPlayer = BattleCtrl.instance.levelManager.curLevel.magnetView;
Vector3 varDir = varPlayer.transform.position - transform.position;
transform.position += (varDir.normalized) * Time.deltaTime * m_speed;
Vector3 varPos = transform.localPosition;
if (varPos.y < 0.48)
{
varPos.y = 0.48f;
}
transform.localPosition = varPos;
}
UpdateMagnetPower();
}
//磁场作用
void UpdateMagnetPower()
{
MagnetView varPlayer = BattleCtrl.instance.levelManager.curLevel.magnetView;
Vector3 varDir = transform.position - varPlayer.transform.position;
if (varPlayer && Vector3.SqrMagnitude(varDir) <= varPlayer.magnetRange * varPlayer.magnetRange && m_bMove)
{
if (!varPlayer.isSouthPole)
{
m_bControl = false;
m_rigidBody.isKinematic = false;
transform.SetParent(null);
m_rigidBody.AddForce((varDir.normalized /*- Vector3.up * 0.1f*/) * varPlayer.magnetPower, ForceMode.Impulse);
}
else
{
if (Vector3.SqrMagnitude(varDir) > varPlayer.disBulletAttach * varPlayer.disBulletAttach)
{
//m_rigidBody.AddForce(-varDir.normalized * varPlayer.magnetPower, ForceMode.Impulse);
}
else
{
m_bControl = false;
transform.SetParent(varPlayer.transform);
transform.RotateAround(varPlayer.transform.position, -varPlayer.transform.up, Time.deltaTime * m_rotateSpeed);
}
}
}
}
}
fileFormatVersion: 2
guid: cd4e9f4b2b5ba9044bfcfd3b586792e1
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class BulletSouthView : MonoBehaviour
{
[Header("速度")]
public float m_speed = 0.0f;
[Header("旋转速度")]
public float m_rotateSpeed = 0.0f;
private bool m_bMove = false;
private bool m_bControl = true;
private Rigidbody m_rigidBody;
private Transform m_bossTrans;
// Start is called before the first frame update
void Start()
{
m_rigidBody = GetComponent<Rigidbody>();
}
//开始移动
public void StartMove(Transform bossTrans)
{
m_bossTrans = bossTrans;
m_bMove = true;
transform.SetParent(null);
}
//设置激活状态
public void SetActiveState(bool value)
{
gameObject.SetActive(value);
if (!value)
{
m_bMove = false;
}
}
//重置状态
public void ResetState()
{
m_bMove = false;
gameObject.SetActive(true);
m_bControl = true;
m_rigidBody.isKinematic = true;
transform.SetParent(m_bossTrans);
}
// Update is called once per frame
void Update()
{
if (BattleCtrl.instance.isEndBattle)
{
return;
}
if (m_bMove && m_bControl)
{
MagnetView varPlayer = BattleCtrl.instance.levelManager.curLevel.magnetView;
Vector3 varDir = varPlayer.transform.position - transform.position;
transform.position += (varDir.normalized) * Time.deltaTime * m_speed;
Vector3 varPos = transform.localPosition;
if (varPos.y < 0.48)
{
varPos.y = 0.48f;
}
transform.localPosition = varPos;
}
UpdateMagnetPower();
}
//磁场作用
void UpdateMagnetPower()
{
MagnetView varPlayer = BattleCtrl.instance.levelManager.curLevel.magnetView;
Vector3 varDir = transform.position - varPlayer.transform.position;
if (varPlayer && Vector3.SqrMagnitude(varDir) <= varPlayer.magnetRange * varPlayer.magnetRange && m_bMove)
{
if (varPlayer.isSouthPole)
{
m_bControl = false;
m_rigidBody.isKinematic = false;
transform.SetParent(null);
m_rigidBody.AddForce((varDir.normalized /*- Vector3.up*0.1f*/) * varPlayer.magnetPower, ForceMode.Impulse);
}
else
{
if(Vector3.SqrMagnitude(varDir) > varPlayer.disBulletAttach * varPlayer.disBulletAttach)
{
//m_rigidBody.AddForce(-varDir.normalized * varPlayer.magnetPower, ForceMode.Impulse);
}
else
{
m_bControl = false;
transform.SetParent(varPlayer.transform);
transform.RotateAround(varPlayer.transform.position, -varPlayer.transform.up, Time.deltaTime * m_rotateSpeed);
}
}
}
}
}
fileFormatVersion: 2
guid: fa0eb93c43224444d8b93cead88d7d5d
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
......@@ -35,9 +35,9 @@ public class SecondLevelTrigger : MonoBehaviour
{
return;
}
if(BattleCtrl.instance.battleUI.IsLeftEmtryBomb && !BattleCtrl.instance.battleUI.IsBombButtonCanInteractable)
{
m_playerTrans.Translate(Vector3.forward * Time.deltaTime * m_speed, Space.Self);
}
//if(BattleCtrl.instance.battleUI.IsLeftEmtryBomb && !BattleCtrl.instance.battleUI.IsBombButtonCanInteractable)
//{
// m_playerTrans.Translate(Vector3.forward * Time.deltaTime * m_speed, Space.Self);
//}
}
}
......@@ -69,7 +69,7 @@ public class BombState1View : MonoBehaviour
{
if (BattleCtrl.instance.battleUI.IsBombStrength)
{
m_bombEffect = PoolManager.Instance.GetObjectFromPool(CacheManager.Instance.bombEffectObj);
//m_bombEffect = PoolManager.Instance.GetObjectFromPool(CacheManager.Instance.bombEffectObj);
m_bombEffect.transform.position = m_bombPos;
GameServices.timerServices.Push(this, 1.0f, delegate
{
......@@ -80,7 +80,7 @@ public class BombState1View : MonoBehaviour
}
else if(BattleCtrl.instance.battleUI.IsBombDouble)
{
m_bombEffect = PoolManager.Instance.GetObjectFromPool(CacheManager.Instance.bombRocketEffectObj);
//m_bombEffect = PoolManager.Instance.GetObjectFromPool(CacheManager.Instance.bombRocketEffectObj);
m_bombEffect.transform.position = m_bombPos;
GameServices.timerServices.Push(this, 1.0f, delegate
{
......@@ -91,7 +91,7 @@ public class BombState1View : MonoBehaviour
}
else
{
m_bombEffect = PoolManager.Instance.GetObjectFromPool(CacheManager.Instance.bombEffectObj);
//m_bombEffect = PoolManager.Instance.GetObjectFromPool(CacheManager.Instance.bombEffectObj);
m_bombEffect.transform.position = m_bombPos;
GameServices.timerServices.Push(this, 1.0f, delegate
{
......
......@@ -106,7 +106,7 @@ public class BombStateView : MonoBehaviour
{
if(BattleCtrl.instance.battleUI.IsBombDouble)
{
m_firstBombEffect = PoolManager.Instance.GetObjectFromPool(CacheManager.Instance.bombEffectObj);
//m_firstBombEffect = PoolManager.Instance.GetObjectFromPool(CacheManager.Instance.bombEffectObj);
m_firstBombEffect.transform.position = m_firstBombPos;
GameServices.timerServices.Push(this, 1.0f, delegate
{
......@@ -114,7 +114,7 @@ public class BombStateView : MonoBehaviour
});
m_strengthRealBombObj.GetComponent<RayfireBomb>().Explode(0);
m_strengthRealBombObj.SetActive(false);
m_secondBombEffect = PoolManager.Instance.GetObjectFromPool(CacheManager.Instance.bombEffectObj);
//m_secondBombEffect = PoolManager.Instance.GetObjectFromPool(CacheManager.Instance.bombEffectObj);
m_secondBombEffect.transform.position = m_secondBombPos;
GameServices.timerServices.Push(this, 1.0f, delegate
{
......@@ -125,7 +125,7 @@ public class BombStateView : MonoBehaviour
}
else
{
m_firstBombEffect = PoolManager.Instance.GetObjectFromPool(CacheManager.Instance.bombEffectObj);
//m_firstBombEffect = PoolManager.Instance.GetObjectFromPool(CacheManager.Instance.bombEffectObj);
m_firstBombEffect.transform.position = m_firstBombPos;
GameServices.timerServices.Push(this, 1.0f, delegate
{
......@@ -139,7 +139,7 @@ public class BombStateView : MonoBehaviour
{
if (BattleCtrl.instance.battleUI.IsBombDouble)
{
m_firstBombEffect = PoolManager.Instance.GetObjectFromPool(CacheManager.Instance.bombEffectObj);
//m_firstBombEffect = PoolManager.Instance.GetObjectFromPool(CacheManager.Instance.bombEffectObj);
m_firstBombEffect.transform.position = m_firstBombPos;
GameServices.timerServices.Push(this, 1.0f, delegate
{
......@@ -147,7 +147,7 @@ public class BombStateView : MonoBehaviour
});
m_realBombObj.GetComponent<RayfireBomb>().Explode(0);
m_realBombObj.SetActive(false);
m_secondBombEffect = PoolManager.Instance.GetObjectFromPool(CacheManager.Instance.bombEffectObj);
//m_secondBombEffect = PoolManager.Instance.GetObjectFromPool(CacheManager.Instance.bombEffectObj);
m_secondBombEffect.transform.position = m_secondBombPos;
GameServices.timerServices.Push(this, 1.0f, delegate
{
......@@ -158,7 +158,7 @@ public class BombStateView : MonoBehaviour
}
else
{
m_firstBombEffect = PoolManager.Instance.GetObjectFromPool(CacheManager.Instance.bombEffectObj);
//m_firstBombEffect = PoolManager.Instance.GetObjectFromPool(CacheManager.Instance.bombEffectObj);
m_firstBombEffect.transform.position = m_firstBombPos;
GameServices.timerServices.Push(this, 1.0f, delegate
{
......
......@@ -214,11 +214,11 @@ public class BombView : MonoBehaviour
//Debug.LogError((m_rootTrans.childCount - 1) + "................." + m_totalChildNum);
if(m_bControlWin)
{
if (BattleCtrl.instance.battleUI.IsLeftEmtryBomb && !BattleCtrl.instance.battleUI.IsBombButtonCanInteractable)
{
m_bControlWin = false;
Invoke("CheckSuccess", 4);
}
//if (BattleCtrl.instance.battleUI.IsLeftEmtryBomb && !BattleCtrl.instance.battleUI.IsBombButtonCanInteractable)
//{
// m_bControlWin = false;
// Invoke("CheckSuccess", 4);
//}
if ((float)m_TotalDamageNum / m_totalChildNum >= 0.8f)
{
m_bControlWin = false;
......@@ -231,12 +231,12 @@ public class BombView : MonoBehaviour
// m_bControlWin = false;
// BattleCtrl.instance.OnBattleWin();
//}
if (BattleCtrl.instance.battleUI.IsLeftEmtryBomb && !BattleCtrl.instance.battleUI.IsBombButtonCanInteractable
&& m_TotalDamageNum < m_totalChildNum * 0.6f && m_bControlFail)
{
m_bControlFail = false;
Invoke("CheckFail", 4);
}
//if (BattleCtrl.instance.battleUI.IsLeftEmtryBomb && !BattleCtrl.instance.battleUI.IsBombButtonCanInteractable
// && m_TotalDamageNum < m_totalChildNum * 0.6f && m_bControlFail)
//{
// m_bControlFail = false;
// Invoke("CheckFail", 4);
//}
}
//检查胜利
void CheckSuccess()
......@@ -280,7 +280,7 @@ public class BombView : MonoBehaviour
BattleCtrl.instance.battleUI.SetSelectUIState(false);
//一个炸弹的
m_bCanBePlace = false;
GameObject go = PoolManager.Instance.GetObjectFromPool(CacheManager.Instance.rayfireBombObj);
GameObject go = PoolManager.Instance.GetObjectFromPool(CacheManager.Instance.largeMagnetObj);
//go.transform.position = hit.point;
SetBomb(go);
m_bombStateView.SetBombModelPos(hit.point);
......
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class FollowTarget : MonoBehaviour
{
//游戏人物 的位置
public Transform player;
//游戏人物与 相机的差
public Vector3 offset;
private Rigidbody m_rigidbody;
// Use this for initialization
void Start()
{
//offset = transform.position - player.position;
//m_rigidbody = GetComponent<Rigidbody>();
}
// Update is called once per frame
void Update()
{
//m_rigidbody.velocity.Normalize();
// Save transform localy
//Quaternion curRot = transform.rotation;
Vector3 tPos = player.position + offset;
// Look at the target
//transform.LookAt(player);
// Keep the camera above the target y position
//if (tPos.y < player.position.y)
//{
// tPos.y = player.position.y;
//}
// Set transform with lerp
//transform.position = tPos;//Vector3.Lerp(transform.position, tPos, 1);
//transform.rotation = Quaternion.Lerp(curRot, transform.rotation, 1);
// Keep camera above the y:0.5f to prevent camera going underground
//if (transform.position.y < 0.5f)
//{
// transform.position = new Vector3(transform.position.x, 0.5f, transform.position.z);
//}
}
}
fileFormatVersion: 2
guid: a6d147e4d5763a046b550838f7cd2166
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
......@@ -14,11 +14,13 @@ public class LevelCtrl : MonoBehaviour
public ChainRopeView m_chainRopeView;//娃娃机爪钩
public Camera m_camera;
public BombView m_bombView;//炸弹view
public MagnetView m_magnetView;//磁铁view
//public TargetView m_targetView;//触发器
public ChainView chainView => m_chainView;
public ChainRopeView chainRopeView => m_chainRopeView;
public Camera cam => m_camera;
public BombView bombView => m_bombView;
public MagnetView magnetView => m_magnetView;
//public TargetView targetView => m_targetView;
BattleCtrl _BattleCtrl;
......
......@@ -4,6 +4,11 @@ using UnityEngine;
public class LocalRecord
{
//删除所有
public static void DeleteAll()
{
PlayerPrefs.DeleteAll();
}
//是否有key
public static bool HasKey(string str)
{
......@@ -23,4 +28,14 @@ public class LocalRecord
{
return PlayerPrefs.GetInt(str);
}
//设置字符串记录
public static void SetStringRecord(string str, string record)
{
PlayerPrefs.SetString(str, record);
}
//获取字符串记录
public static string GetStringRecord(string str)
{
return PlayerPrefs.GetString(str);
}
}
......@@ -5,14 +5,29 @@ using UnityEngine;
public class CacheManager : MonoBehaviour
{
[SerializeField]
private GameObject m_bombEffectObj;//炸弹特效
private GameObject m_largeMagnetObj;//重磁铁
[SerializeField]
private GameObject m_rayfireBombObj;//炸弹预设
private GameObject m_smallMagnetObj;//轻磁铁
[SerializeField]
private GameObject m_bombRocketEffectObj;//火箭特效
public GameObject bombEffectObj => m_bombEffectObj;
public GameObject rayfireBombObj => m_rayfireBombObj;
public GameObject bombRocketEffectObj => m_bombRocketEffectObj;
private GameObject m_coinPropObj;//金币道具
[SerializeField]
private GameObject m_triggerObj;//机关
[SerializeField]
private GameObject m_doorObj;//门
[SerializeField]
private GameObject m_keyObj;//钥匙
[SerializeField]
private GameObject m_npcObj;//npc
[SerializeField]
private GameObject m_bossObj;//boss
public GameObject largeMagnetObj => m_largeMagnetObj;
public GameObject smallMagnetObj => m_smallMagnetObj;
public GameObject coinPropObj => m_coinPropObj;
public GameObject triggerObj => m_triggerObj;
public GameObject doorObj => m_doorObj;
public GameObject keyObj => m_keyObj;
public GameObject npcObj => m_npcObj;
public GameObject bossObj => m_bossObj;
public static CacheManager Instance = null;
void Awake()
{
......
......@@ -26,8 +26,8 @@ public class GlobalConfig
public static string SoundKey = "SoundKey";//音效Key
public static string BgmKey = "BgmKey";//音乐Key
public static float NormalWidth = 1080f;
public static float NormalHeight = 1920f;
public static float NormalWidth = 1920;
public static float NormalHeight = 1080f;
public static float CurRatio = (float)UnityEngine.Screen.height / (float)UnityEngine.Screen.width;
public static float NormalRatio = NormalHeight / NormalWidth;
public static float Ratio = CurRatio / NormalRatio;
......
This diff is collapsed.
This diff is collapsed.
fileFormatVersion: 2
guid: b639f019c9bf3304c924d75cb49a35a4
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
This diff is collapsed.
fileFormatVersion: 2
guid: e6aa184cf878a1a46913a368a4947914
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
This diff is collapsed.
fileFormatVersion: 2
guid: 765a21b5ca9d86f479b490b5c450519e
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
This diff is collapsed.
fileFormatVersion: 2
guid: b1aa67b0c2061c948921fb7686780812
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
This diff is collapsed.
fileFormatVersion: 2
guid: 594435d753769cd409f95c75d117fe42
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
This diff is collapsed.
fileFormatVersion: 2
guid: 5a0ddf2932a94604fbef44dce3e81590
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
This diff is collapsed.
fileFormatVersion: 2
guid: 78ebb90e56d81fe49a6f3797856b2b9f
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
This diff is collapsed.
fileFormatVersion: 2
guid: ea61a5b2c0c302940997325fce33771a
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: caff496124fcb6346b2b7fb9ab234947
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
This diff is collapsed.
This diff is collapsed.
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