// Use this for initialization void Start() { GameObject cameraManager = GameObject.Find("Main Camera"); cameraMgr = cameraManager.AddComponent <CamMgr>(); // 타겟 카메라를 로컬로 지정 cameraMgr.replaceTarget(localPlayer); }
void OnCollisionEnter2D(Collision2D coll) { // 충돌된 위치 저장 collPos = transform.position; // 충돌된 위치에서 이펙트 프리팹 생성 Object obj = Instantiate(expEffect, collPos, Quaternion.identity); // 0.1초 후 이펙트 제거 Destroy(obj, 0.1f); // 반경 1.0f 안에 있는 collider2d 추출 Collider2D[] colls = Physics2D.OverlapCircleAll(collPos, 1.0f); foreach (Collider2D findcoll in colls) { // 태그가 player일 경우 if (findcoll.gameObject.tag == "Player" || findcoll.gameObject.tag == "NetPlayer") { playerPos = findcoll.gameObject.transform.position; Debug.Log("!!" + findcoll.gameObject.transform.position); Debug.Log("collPos = " + collPos); // 데미지 계산 fVec = collPos - playerPos; player_damaged = Mathf.Sqrt(fVec.x * fVec.x + fVec.y * fVec.y + fVec.z + fVec.z) * 100.0f; Debug.Log("Damaged:" + player_damaged); // 해당 방향으로 밀려난다 findcoll.attachedRigidbody.mass = 1.0f; findcoll.attachedRigidbody.AddForce((playerPos - collPos) * 1000.0f); } // 반지름을 1로 설정했으므로 그냥 곱하면된다 로컬플레이어만 데미지를 받아 중복계산을 방지한다. if (findcoll.gameObject.tag == "Player") { findcoll.GetComponent <PlayerCtrl>().hp -= (damage - player_damaged); // hp를 패킷으로 브로드 캐스트한다. GameObject.Find("basket").GetComponent <CharacterRoot>().SendHitPointData(GlobalParam.get().global_account_id, findcoll.GetComponent <PlayerCtrl>().hp); } } // 타겟 카메라를 로컬로 지정 GameObject cameraManager = GameObject.Find("Main Camera"); GameObject localPlayer = GameObject.Find("basket").GetComponent <GameRoot>().GetLocalPlayer(); camPlayer = localPlayer.GetComponent <FireCtrl>().IsCamPlayer(); if (!camPlayer) { cameraMgr = cameraManager.GetComponent <CamMgr>(); cameraMgr.replaceTarget(localPlayer); } // 총알 제거 DestroyObject(gameObject); }
void OnCollisionEnter2D(Collision2D coll) { // 충돌된 위치 저장 collPos = transform.position; // 충돌된 위치에서 이펙트 프리팹 생성 Object obj = Instantiate(expEffect,collPos,Quaternion.identity); // 0.1초 후 이펙트 제거 Destroy (obj,0.1f); // 반경 1.0f 안에 있는 collider2d 추출 Collider2D[] colls = Physics2D.OverlapCircleAll (collPos, 1.0f); foreach (Collider2D findcoll in colls) { // 태그가 player일 경우 if(findcoll.gameObject.tag == "Player" || findcoll.gameObject.tag == "NetPlayer"){ playerPos = findcoll.gameObject.transform.position; Debug.Log ("!!"+findcoll.gameObject.transform.position); Debug.Log ("collPos = "+collPos); // 데미지 계산 fVec = collPos - playerPos; player_damaged = Mathf.Sqrt(fVec.x * fVec.x + fVec.y * fVec.y + fVec.z + fVec.z) * 100.0f; Debug.Log("Damaged:" + player_damaged); // 해당 방향으로 밀려난다 findcoll.attachedRigidbody.mass = 1.0f; findcoll.attachedRigidbody.AddForce((playerPos - collPos)*1000.0f); } // 반지름을 1로 설정했으므로 그냥 곱하면된다 로컬플레이어만 데미지를 받아 중복계산을 방지한다. if (findcoll.gameObject.tag == "Player") { findcoll.GetComponent<PlayerCtrl>().hp -= (damage - player_damaged); // hp를 패킷으로 브로드 캐스트한다. GameObject.Find("basket").GetComponent<CharacterRoot>().SendHitPointData(GlobalParam.get().global_account_id, findcoll.GetComponent<PlayerCtrl>().hp); } } // 타겟 카메라를 로컬로 지정 GameObject cameraManager = GameObject.Find("Main Camera"); GameObject localPlayer = GameObject.Find("basket").GetComponent<GameRoot>().GetLocalPlayer(); camPlayer = localPlayer.GetComponent<FireCtrl>().IsCamPlayer(); if (!camPlayer) { cameraMgr = cameraManager.GetComponent<CamMgr>(); cameraMgr.replaceTarget(localPlayer); } // 총알 제거 DestroyObject (gameObject); }
// Use this for initialization void Start() { GameObject cameraManager = GameObject.Find("Main Camera"); cameraMgr = cameraManager.AddComponent<CamMgr>(); // 타겟 카메라를 로컬로 지정 cameraMgr.replaceTarget(localPlayer); }
// Update is called once per frame void Update() { //if (UIMgr.OnClickFireButton ()) { // Fire(); //} fireBar = GameObject.Find("FirePos").GetComponent <LineRenderer>(); // 2초로 파워 제한 timer += Time.deltaTime; if (timer > MAX_TIMER) { timer = MAX_TIMER; } if (coolTimer >= 0) { coolTimer -= Time.deltaTime; } if (Input.anyKeyDown) { camPlayer = true; } if (coolTimer <= 0) { // 발사힘 결정 if (Input.GetMouseButtonDown(0)) { shotEnable = true; timer = 0.0f; } if (shotEnable) { // Fire 바 표시 fireBar.SetPosition(1, new Vector3(1.0f * (timer / MAX_TIMER), 0.0f, 0.0f)); fireBar.SetWidth(0.0f, 0.2f * (timer / MAX_TIMER)); if (Input.GetMouseButtonUp(0)) { // 파워 저장 shotTimer = timer; Fire(); // 초기화 작업 coolTimer = 3.0f; shotEnable = false; camPlayer = false; fireBar.SetPosition(1, new Vector3(0.0f, 0.0f, 0.0f)); fireBar.SetWidth(0.0f, 0.0f); } } } GameObject cameraManager = GameObject.Find("Main Camera"); GameObject localPlayer = GameObject.Find("basket").GetComponent <GameRoot>().GetLocalPlayer(); cameraMgr = cameraManager.GetComponent <CamMgr>(); if (!camPlayer) { // 타겟 카메라를 발사체로 지정 if (target_projectile != null) { cameraMgr.replaceTarget(target_projectile); } } else { cameraMgr.replaceTarget(localPlayer); } }
// Update is called once per frame void Update() { //if (UIMgr.OnClickFireButton ()) { // Fire(); //} fireBar = GameObject.Find("FirePos").GetComponent<LineRenderer>(); // 2초로 파워 제한 timer += Time.deltaTime; if (timer > MAX_TIMER) { timer = MAX_TIMER; } if (coolTimer >= 0) { coolTimer -= Time.deltaTime; } if (Input.anyKeyDown) { camPlayer = true; } if (coolTimer <= 0) { // 발사힘 결정 if (Input.GetMouseButtonDown(0)) { shotEnable = true; timer = 0.0f; } if (shotEnable) { // Fire 바 표시 fireBar.SetPosition(1, new Vector3(1.0f * (timer / MAX_TIMER), 0.0f, 0.0f)); fireBar.SetWidth(0.0f, 0.2f * (timer / MAX_TIMER)); if (Input.GetMouseButtonUp(0)) { // 파워 저장 shotTimer = timer; Fire(); // 초기화 작업 coolTimer = 3.0f; shotEnable = false; camPlayer = false; fireBar.SetPosition(1, new Vector3(0.0f, 0.0f, 0.0f)); fireBar.SetWidth(0.0f, 0.0f); } } } GameObject cameraManager = GameObject.Find("Main Camera"); GameObject localPlayer = GameObject.Find("basket").GetComponent<GameRoot>().GetLocalPlayer(); cameraMgr = cameraManager.GetComponent<CamMgr>(); if (!camPlayer) { // 타겟 카메라를 발사체로 지정 if (target_projectile != null) { cameraMgr.replaceTarget(target_projectile); } } else { cameraMgr.replaceTarget(localPlayer); } }