示例#1
0
        public static GraphObjectType GetFSMGType(this UnityEngine.Object unityObject)
        {
            if (unityObject is AI_ActionBase)
            {
                return(GraphObjectType.AIActionBase);
            }
            else if (unityObject is AI_DecisionBase)
            {
                return(GraphObjectType.AIDecisionBase);
            }
            else if (unityObject is GameObject)
            {
                FSMTargetLocal  clocal  = ((GameObject)unityObject).GetComponent <FSMTargetLocal>();
                FSMTargetGlobal cglobal = ((GameObject)unityObject).GetComponent <FSMTargetGlobal>();

                if (clocal != null)
                {
                    return(GraphObjectType.FSMTargetLocal);
                }
                else if (cglobal != null)
                {
                    return(GraphObjectType.FSMTargetGlobal);
                }
                else
                {
                    return(GraphObjectType.None);
                }
            }
            else
            {
                return(GraphObjectType.None);
            }
        }
示例#2
0
        private void CreateGetTargetLocalNode(UnityEngine.Object go)
        {
            GameObject     gameObject = (GameObject)go;
            FSMTargetLocal fsmt_local = gameObject.GetComponent <FSMTargetLocal>();

            float   randomPosx = UnityEngine.Random.Range(-50.0f, 50.0f);
            float   randomPosy = UnityEngine.Random.Range(-50.0f, 50.0f);
            Vector2 gridPos    = window.WindowToGridPosition(Event.current.mousePosition);

            gridPos.x += randomPosx;
            gridPos.y += randomPosy;

            Node            node      = CreateNode(typeof(Node_TargetsGet), gridPos);
            Node_TargetsGet getTarget = (Node_TargetsGet)node;

            getTarget.SetTarget(fsmt_local.targetName, TargetLocalType.local);
        }