public SkyState GetState()
        {
            var state = new SkyState();

            state.Vars = MemoryReader.ReadUInt32Array(logicPtrVal + scriptVarsOffset, numScriptVars);

            return(state);
        }
예제 #2
0
    public void ChangeSkyAnimation(SkyState state)
    {
        if (prevState2 == state)
        {
            return;
        }

        MonsterAni.SetInteger("MonsterState", (int)state);

        prevState2 = state;
    }
예제 #3
0
	// Update is called once per frame
	void Update () 
    {
        Debug.Log(enemyState);
        switch (enemyState)
        {
            case EnemyState.walk:
                flag_firstattack = true;
                animation.CrossFade("G_war_walk");
                timer += Time.deltaTime;
                if (timer > 1f)
                {
                    navMeshAgent.enabled = true;
                    navMeshAgent.SetDestination(player.transform.position + player.transform.InverseTransformDirection(Vector3.forward)*3);
                    timer = 0;
                }
                break;

            case EnemyState.angry:
                animation.CrossFade("G_war_looking_around");
                navMeshAgent.enabled = false;
                StartCoroutine(timeForAfterAngry());
                break;

            case EnemyState.run:
                animation.CrossFade("G_war_run");
                navMeshAgent.enabled = true;
                navMeshAgent.SetDestination(player.transform.position + player.transform.InverseTransformDirection(Vector3.forward) * 3);
                navMeshAgent.speed = speed_run;
                break;

            case EnemyState.attack:
                animation.CrossFade("G_war_Digging");
                navMeshAgent.enabled = false;
                transform_enmey.LookAt(transform_player.position);
                if (!flag_attack)
                {
                    StartCoroutine(timeForAttack());
                    flag_attack = true;
                }
                break;

            case EnemyState.attackidle:
                animation.CrossFade("G_war_talking");
                navMeshAgent.enabled = false;
                transform_enmey.LookAt(transform_player.position);
                StartCoroutine(timeForAttackIdle());
                break;
            case EnemyState.jump:
                animation.CrossFade("G_war_jump_blow");
                StartCoroutine(timeForJump());
                break;

            case EnemyState.hurt:
                ShowSelf();
                navMeshAgent.enabled = false;
                animation.CrossFade("G_war_anger");
                StartCoroutine(timeForBeforeDaying());
                break;
            case EnemyState.dead:
                ShowSelf();
                animation.CrossFade("G_war_daying");
                StartCoroutine(timeForAfterDaying());
                break;
        }

        skyState = WorldManger.Instance.isNight ? SkyState.night : SkyState.day;

        if (enemyState == EnemyState.hurt || enemyState == EnemyState.dead)
            return;

        switch (skyState)
        {
            case SkyState.night:
                can_angry = true;
                foreach (SkinnedMeshRenderer item in arr_Skinrender)
                {
                    item.enabled = false;
                }
                foreach (MeshRenderer item in arr_render)
                {
                    item.enabled = false;
                }
                break;
            case SkyState.day:
                if (can_angry)
                {
                    can_angry = false;
                    StartCoroutine(timeForBeforeAngry());
                }

                ShowSelf();
                break;
        }

        CaculateDistance();
        
	}
예제 #4
0
 public void SetSkyBox(SkyState state)
 {
     RenderSettings.skybox = m_skyBox[(int)state];
 }
예제 #5
0
 public void SetSkyState(SkyState skyState)
 {
     this.skyState = skyState;
 }