public void Set(TargetLockState state)
    {
        if (Rm_RPGHandler.Instance.Combat.TargetStyle == TargetStyle.ManualTarget)
        {
            if (SelectedGameObject != null)
            {
                SelectedGameObject.SetActive(false);
            }
            if (InCombatGameObject != null)
            {
                InCombatGameObject.SetActive(false);
            }
            return;
        }

        switch (state)
        {
        case TargetLockState.Unselected:
            if (SelectedGameObject != null)
            {
                SelectedGameObject.SetActive(false);
            }
            if (InCombatGameObject != null)
            {
                InCombatGameObject.SetActive(false);
            }
            break;

        case TargetLockState.Selected:
            if (SelectedGameObject != null)
            {
                SelectedGameObject.SetActive(true);
            }
            if (InCombatGameObject != null)
            {
                InCombatGameObject.SetActive(false);
            }
            break;

        case TargetLockState.InCombat:
            if (SelectedGameObject != null)
            {
                SelectedGameObject.SetActive(false);
            }
            if (InCombatGameObject != null)
            {
                InCombatGameObject.SetActive(true);
            }
            break;

        default:
            throw new ArgumentOutOfRangeException("state");
        }
    }
예제 #2
0
    void Start()
    {
        if (TargetLockObject.name == "TargetLock")
        {
            TargetLockObject.SetActive(false);
        }

        if (!Rm_RPGHandler.Instance.Combat.ShowSelected)
        {
            return;
        }


        ShowWithTexture = Rm_RPGHandler.Instance.Combat.ShowSelectedWithTexture;
        if (ShowWithTexture)
        {
            _material = TargetLockObject.GetComponent <MeshRenderer>().materials[0];
            TargetLockObject.SetActive(false);
            TargetLockObject.transform.SetY(Rm_RPGHandler.Instance.Combat.SelectedYOffSet);
            var radius = GetComponent <NavMeshAgent>().radius;
            TargetLockObject.transform.localScale  = new Vector3(BasePlaneScale, 0.001f, BasePlaneScale);
            TargetLockObject.transform.localScale *= (radius * 2);
        }
        else
        {
            var t = transform.Find("TargetLockPrefab");
            if (t == null)
            {
                t      = GeneralMethods.SpawnPrefab(Rm_RPGHandler.Instance.Combat.SelectedPrefabPath, transform.position, transform.rotation, transform).transform;
                t.name = "TargetLockPrefab";
            }

            TargetLockObject = t.gameObject;
            TargetLockPrefab = TargetLockObject.GetComponent <TargetLockPrefab>();
            TargetLockPrefab.Set(TargetLockState.Unselected);
        }

        State = TargetLockState.Unselected;
    }
예제 #3
0
    public void ChangeState(TargetLockState state)
    {
        State = state;
        if (!Rm_RPGHandler.Instance.Combat.ShowSelected)
        {
            return;
        }

        _material = TargetLockObject.GetComponent <MeshRenderer>().sharedMaterial;

        if (Rm_RPGHandler.Instance.Combat.TargetStyle == TargetStyle.ManualTarget)
        {
            if (ShowWithTexture)
            {
                TargetLockObject.SetActive(false);
            }
            else
            {
                TargetLockPrefab.Set(TargetLockState.Unselected);
            }

            return;
        }

        switch (State)
        {
        case TargetLockState.Unselected:
            if (ShowWithTexture)
            {
                TargetLockObject.SetActive(false);
            }
            else
            {
                TargetLockPrefab.Set(TargetLockState.Unselected);
            }
            break;

        case TargetLockState.Selected:
            if (ShowWithTexture)
            {
                TargetLockObject.SetActive(true);
                if (Rm_RPGHandler.Instance.Combat.SelectedTexture.Image != null)
                {
                    //_material.SetTexture("Albedo", Rm_RPGHandler.Instance.Combat.SelectedTexture.Image);
                    _material.mainTexture = Rm_RPGHandler.Instance.Combat.SelectedTexture.Image;
                }
                else
                {
                    Debug.Log("null image");
                }
            }
            else
            {
                TargetLockPrefab.Set(TargetLockState.Selected);
            }
            break;

        case TargetLockState.InCombat:
            if (ShowWithTexture)
            {
                TargetLockObject.SetActive(true);
                if (Rm_RPGHandler.Instance.Combat.SelectedCombatTexture.Image != null)
                {
                    _material.SetTexture("Albedo", Rm_RPGHandler.Instance.Combat.SelectedCombatTexture.Image);
                }
            }
            else
            {
                TargetLockPrefab.Set(TargetLockState.InCombat);
            }
            break;

        default:
            throw new ArgumentOutOfRangeException("state");
        }
    }