Как-то уже задавал этот вопрос в Вопрос-Ответ, но так и не получилось сделать.
Можно ли как то делать проверки вне функций. Например:
Код
public class NewScript : MonoBehaviour {
public bool isStart = false;
if (isStart)
{
public GameObject obj;
}
}
В общем надо как-то проверить, если в редакторе на объекте на котором висит скрипт допустим стоит галочка, то получается что isStart = true и тогда public GameObject obj; активен и можно перетаскивать объект. А если в редакторе галочка не стоит, значит public GameObject obj; неактивен и перетаскивать объект нельзя.
Пробовал так:
Код
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
[CreateAssetMenu(fileName = "New Item", menuName = "Item")]
public class Item : ScriptableObject {
public new string name;
public string description;
public Sprite itemSprite;
public int amount;
public int healing;
public ItemTypes itemTypes;
public enum ItemTypes
{
Weapon, Food, Resources
}
#if UNITY_EDITOR
void OnValidate()
{
if (!Application.isPlaying)
{
if (itemTypes == ItemTypes.Weapon)
{
public int damage;
public float fireRate;
public float range;
}
}
}
#endif
void Start () {
}
}
Но естественно ошибка)
В общем надо сделать чтобы когда Код
itemTypes == ItemTypes.Weapon
то объявлялись 3 переменных. Иначе - чтобы не объявлялись.