상속: MonoBehaviour
예제 #1
0
파일: SearchArea.cs 프로젝트: kosuda/UNIDRA
 void Start()
 {
     // EnemyCtrlをキャッシュする
     enemyCtrl = transform.root.GetComponent <EnemyCtrl> ();
 }
 public void Init(EnemyCtrl manager)
 {
     this.manager = manager;
     handle       = null;
 }
예제 #3
0
 public Sensor(int viewRadius, int viewAngle, EnemyCtrl ctrl)
 {
     this.viewRadius = viewRadius;
     this.viewAngle  = viewAngle;
     this.ctrl       = ctrl;
 }
예제 #4
0
    void Awake()
    {
        Instance = this;

        //setAirshipPos = true;
    }
예제 #5
0
 void Start()
 {
     // EnemyCtrlをキャッシュする
     enemyCtrl = transform.root.GetComponent<EnemyCtrl>();
 }
예제 #6
0
 public void SetEndAttack(float f)
 {
     StartCoroutine(EnemyCtrl.WaitTimeAction(f, () => EndAttack()));
 }
예제 #7
0
 public GoblinAttackState(Animator anim, EnemyCtrl ctrl)
 {
     this.anim      = anim;
     this.enemyCtrl = ctrl;
     originSpeed    = this.enemyCtrl.RoleData.speed;
 }
예제 #8
0
 private void Awake()
 {
     Instance = this;
 }
예제 #9
0
 private void Start()
 {
     enemy = GetComponentInParent <EnemyCtrl>();
 }
예제 #10
0
    public void ProcessUserMsg()
    {
        if (msgMap.Keys.Count <= 0)
        {
            return;
        }

        var it = msgMap.Keys.GetEnumerator();

        while (it.MoveNext())
        {
            Queue <JsonData> queue = msgMap[it.Current];
            for (int j = 0; j < queue.Count; j++)
            {
                JsonData msg = queue.Dequeue();

                eNetworkMsg msgType = (eNetworkMsg)int.Parse(msg["msgType"].ToString());

                switch (msgType)
                {
                case eNetworkMsg.NetworkLogin:
                {
#if UNITY_EDITOR
                    Debug.Log("Receive Login");
#endif
                    EnemyCtrl enemy = Instantiate(enemyPrefab, new Vector3(-200f, 0f, 0f), Quaternion.identity).GetComponent <EnemyCtrl>();
                    enemyList.Add(enemy);
                    enemy.MacAddress = it.Current;

                    if (network.mlistUserMacAddress.Count == 1)
                    {
                        break;
                    }

                    OnSendMsg(eNetworkMsg.NetworkInitInfoReq);
                }
                break;

                case eNetworkMsg.NetworkLogout:
                {
#if UNITY_EDITOR
                    Debug.Log("Receive Logout");
#endif
                    for (int i = 0; i < enemyList.Count; i++)
                    {
                        if (it.Current == enemyList[i].MacAddress)
                        {
                            EnemyCtrl enemy = enemyList[i];
                            enemyList.RemoveAt(i);
                            Destroy(enemy.gameObject);
                            break;
                        }
                    }

                    msgMap[it.Current].Clear();
                    msgMap[it.Current] = null;
                    msgMap.Remove(it.Current);
                    it = msgMap.Keys.GetEnumerator();
                }
                break;

                case eNetworkMsg.NetworkPlaying:
                {
                    EnemyCtrl enemy = null;
#if UNITY_EDITOR
                    Debug.Log("Receive Playing");
#endif
                    for (int i = 0; i < enemyList.Count; i++)
                    {
                        if (it.Current == enemyList[i].MacAddress)
                        {
                            enemy = enemyList[i];
                            //enemy.transform.position = new Vector3(float.Parse(msg["x"].ToString()), 0f, float.Parse(msg["z"].ToString()));
                            float x      = float.Parse(msg["x"].ToString());
                            float z      = float.Parse(msg["z"].ToString());
                            float yAngle = float.Parse(msg["yAngle"].ToString());
                            enemy.EnqueuePosAndRot(x, z, yAngle);

                            break;
                        }
                    }
                }
                break;

                case eNetworkMsg.NetworkInitInfoReq:
                {
#if UNITY_EDITOR
                    Debug.Log("Receive InitInfoReq");
#endif
                    OnSendMsg(eNetworkMsg.NetworkInitInfoRes);
                }
                break;

                case eNetworkMsg.NetworkInitInfoRes:
                {
                    if (isReceiveInitData == true)
                    {
                        break;
                    }
                    isReceiveInitData = true;

#if UNITY_EDITOR
                    Debug.Log("Receive InitInfoRes");
#endif
                }
                break;

                default:
                    break;
                }
            }
        }
    }
예제 #11
0
 private void GetPlayer()
 {
     EnemyCtrl       = gameObject.GetComponent <EnemyCtrl>();
     playerTransform = EnemyCtrl.playerObject.transform;
 }
예제 #12
0
    // Update is called once per frame
    void Update()
    {
        //Debug.Log("록온 시스템을 누가 가져오는지 확인용 로그" + LockOnSystemUs.tag);
        //록온시스템을 사용하는게 플레이어 일 경우
        if (LockOnSystemUs.tag == "Player")
        {
            //Debug.Log("플레이어 tr 값을 가져왔는지 확인 : " + LockOnSystemUs);
            //록온시스템 확인용 드로우레이저 포인트. 씬에서만 나오고 게임에선 안나옴.
            //Debug.DrawRay(lockOn.position, lockOn.forward * 100.0f, Color.green);

            //레이캐스트 함수.
            RaycastHit lockOnHit;
            //Physics.Raycast(lockOn.position, lockOn.forward, out lockOnHit, 100.0f);

            //레이캐스트 적용되는동안
            if (Physics.Raycast(lockOn.position, lockOn.forward, out lockOnHit, 100.0f))
            {
                //모델의 중심점에서 좌표값반환 xyz만큼 차지하는 좌표값 //Debug.Log(lockOnHit.collider.renderer.bounds.size);

                //록온에 검출된것이 적군일경우
                if (lockOnHit.collider.tag == ("Enemy"))
                {
                    //타겟에 등록된 적군의 정보를 타겟 변수에 저장.
                    lockOnTarget = lockOnHit.collider.transform;
                    //missileLockOnTarget.LockOnTargetGet = lockOnTarget;
                    //록온상태 확인 변수 변경
                    lockOnCheck = true;
                    //MissileCtrl.LockOnCheck = true;

                    //guiSet = GameObject.FindGameObjectWithTag("GuiSetting");
                    //적군 체력바를 화면에 표시하기 위해 Gui 스크립트 값 변경.
                    guiSet.GetComponent <GuiSet>().enemyHpBarCheck = true;
                    //Debug.Log(guiSet.GetComponent<GuiSet>().enemyHpBarCheck + " 적군 체력바 체크값 확인");
                    //적군 체력바에 실시간으로 전송하기 위한 타겟정보 저장.
                    enemyHpBar = lockOnTarget.GetComponent <EnemyCtrl>();
                    //록온된 적군 현재 체력 저장용
                    float fHp;
                    //록온된 적군 최대 체력 저장용
                    float fMaxHp;
                    //적군 체력 저장
                    fHp = enemyHpBar.Hp;
                    //적군 최대체력 저장
                    fMaxHp = enemyHpBar.maxHp;
                    //적군 체력 퍼센트로 변환하여 저장
                    enemyHpPercent = (fHp / fMaxHp);
                    //gui에 적군 체력바 체력에 따라 실시간으로 조절.
                    guiSet.GetComponent <GuiSet>().enemyHpBar.fillAmount = enemyHpPercent;
                    ////Debug.Log(enemyHpPercent + " 적군체력 몇이니??????????????");
                    ////Debug.Log(enemyHpBar.Hp + " 적군 현재 체력 얼마?");
                    ////Debug.Log(enemyHpBar.maxHp + " 적군 체력최대치 얼마?");
                }
                //록온상태가 끝날경우.
                else
                {
                    //록온체크값 변경.
                    lockOnCheck = false;
                    //타겟 정보 리셋
                    lockOnTarget = lockOnReset;
                    //적군 록온중이 아니므로 적군 체력바 off
                    guiSet = GameObject.FindGameObjectWithTag("GuiSetting");
                    guiSet.GetComponent <GuiSet>().enemyHpBarCheck = false;
                    //Debug.Log(guiSet.GetComponent<GuiSet>().enemyHpBarCheck + "적군 체력바 체크 두번째");
                    //missileLockOnTarget.LockOnTargetGet = lockOnTarget;
                }
            }
            //혹은 록온이 아예 실행아닐경우. 위와 동일.
            else
            {
                lockOnTarget = lockOnReset;
                guiSet       = GameObject.FindGameObjectWithTag("GuiSetting");
                guiSet.GetComponent <GuiSet>().enemyHpBarCheck = false;
                //Debug.Log(guiSet.GetComponent<GuiSet>().enemyHpBarCheck + "적군 체력바 체크333");
                //missileLockOnTarget.LockOnTargetGet = lockOnTarget;
                lockOnCheck = false;
            }
        }

        //적군이 록온기능 사용일때. 위와 동일한 코드지만 사용하는 기능이 적어 코드 갯수차이남.
        if (LockOnSystemUs.tag == "Enemy")
        {
            //Debug.Log("온 시스템을 누가 가져오는지 확인용 로그. 적군용 : " + LockOnSystemUs.tag);
            //Debug.DrawRay(lockOn.position, lockOn.forward * 100.0f, Color.green);
            RaycastHit lockOnHit;
            //Physics.Raycast(lockOn.position, lockOn.forward, out lockOnHit, 100.0f);

            if (Physics.Raycast(lockOn.position, lockOn.forward, out lockOnHit, 100.0f))
            {
                //Debug.Log(lockOnHit.collider.tag + "   " + lockOnHit.collider.gameObject);

                //모델의 중심점에서 좌표값반환 xyz만큼 차지하는 좌표값 //Debug.Log(lockOnHit.collider.renderer.bounds.size);
                if (lockOnHit.collider.tag == ("Player"))
                {
                    lockOnTarget = lockOnHit.collider.transform;
                    ////Debug.Log(lockOn.collider.tag + "플레이어 태그값 가져오나?");
                    //missileLockOnTarget.LockOnTargetGet = lockOnTarget;
                    lockOnCheck = true;
                    //MissileCtrl.LockOnCheck = true;
                }
                else
                {
                    lockOnCheck  = false;
                    lockOnTarget = lockOnReset;
                    //missileLockOnTarget.LockOnTargetGet = lockOnTarget;
                }
            }

            else
            {
                lockOnTarget = lockOnReset;
                //missileLockOnTarget.LockOnTargetGet = lockOnTarget;
                lockOnCheck = false;
            }
        }
    }
 // Use this for initialization
 void Start()
 {
     enemyCtrl = transform.root.GetComponent<EnemyCtrl>();
 }
	// Use this for initialization
	void Start() {
		enemyCtrl = transform.root.GetComponent<EnemyCtrl>();
	}
예제 #15
0
 /// <summary>
 /// trueならAI関数の呼び出しをやめる
 /// </summary>
 /// <param name="flag"></param>
 protected void SetAIStop(bool flag)
 {
     StopAIAction = flag;
     EnemyCtrl.StopMove();
 }
예제 #16
0
 public GoblinDieState(Animator anim, EnemyCtrl ctrl)
 {
     this.anim      = anim;
     this.enemyCtrl = ctrl;
 }
예제 #17
0
 /// <summary>
 /// 敵を発見したときの処理
 /// </summary>
 void DetectAction()
 {
     EnemyCtrl.DetectAction();
     SetAIState(AISTATE.WAIT, 3.0f);
 }
예제 #18
0
 void Start()
 {
     // EnemyCtrl을 미리 준비한다.
     enemyCtrl = transform.root.GetComponent <EnemyCtrl>();
 }
예제 #19
0
 void Start()
 {
     // EnemyCtrl을 미리 준비한다.
     enemyCtrl = transform.root.GetComponent<EnemyCtrl>();
 }
예제 #20
0
 void Awake()
 {
     enermyNav = GetComponent <NavMeshAgent> ();
     ani       = GetComponent <Animation> ();
     enemyCtrl = GetComponent <EnemyCtrl> ();
 }