Exemplo n.º 1
0
    // Use this for initialization
    void Start()
    {
        GameObject cameraManager = GameObject.Find("Main Camera");

        cameraMgr = cameraManager.AddComponent <CamMgr>();

        // 타겟 카메라를 로컬로 지정
        cameraMgr.replaceTarget(localPlayer);
    }
Exemplo n.º 2
0
    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);
    }
Exemplo n.º 3
0
    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);
    }
Exemplo n.º 4
0
    // Use this for initialization
    void Start()
    {
        GameObject cameraManager = GameObject.Find("Main Camera");
        cameraMgr = cameraManager.AddComponent<CamMgr>();

        // 타겟 카메라를 로컬로 지정
        cameraMgr.replaceTarget(localPlayer);
    }
Exemplo n.º 5
0
    // 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);
        }
    }
Exemplo n.º 6
0
    // 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);
        }
    }