コード例 #1
0
    // Update is called once per frame
    void Update()
    {
        AIsetAdvanceC ai = GetComponent <AIsetAdvanceC>();

        if (ai.followTarget)
        {
            float distance = (transform.position - ai.GetDestination()).magnitude;
            if (m == 0 && distance >= switchInRange)
            {
                SwitchMode(1);
                m = 1;
            }
            else if (m == 1 && distance < switchInRange)
            {
                SwitchMode(0);
                m = 0;
            }
        }
    }
コード例 #2
0
    void SwitchMode(int mode)
    {
        AIsetAdvanceC ai = GetComponent <AIsetAdvanceC>();

        ai.c = 0;
        ai.approachDistance = modeSetting[mode].approachDistance;
        ai.speed            = modeSetting[mode].speed;
        ai.bulletPrefab     = modeSetting[mode].bulletPrefab;
        ai.attackPoint      = modeSetting[mode].attackPoint;
        ai.attackCast       = modeSetting[mode].attackCast;
        ai.comboDelay       = modeSetting[mode].comboDelay;
        ai.attackDelay      = modeSetting[mode].attackDelay;
        ai.attackAnimation  = modeSetting[mode].attackAnimation;
        ai.attackVoice      = modeSetting[mode].attackVoice;

        if (mode == 0)
        {
            if (closeRangeweaponMesh)
            {
                closeRangeweaponMesh.SetActive(true);
            }
            if (longRangeweaponMesh)
            {
                longRangeweaponMesh.SetActive(false);
            }
        }
        if (mode == 1)
        {
            if (closeRangeweaponMesh)
            {
                closeRangeweaponMesh.SetActive(false);
            }
            if (longRangeweaponMesh)
            {
                longRangeweaponMesh.SetActive(true);
            }
        }
    }