public static DelegatePointer CreateInstance(DelegatePointer _pointer)
    {
        DelegatePointer ret = CreateInstance <DelegatePointer>();

        ret.Function = _pointer.Function;
        return(ret);
    }
    // Use this for initialization
    void Start()
    {
        UnityEngine.Events.UnityEvent ue = new UnityEngine.Events.UnityEvent();
        ue.AddListener(() =>
        {
            Debug.Log(1);
            boss.talking   = false;
            player.talking = true;
        });
        UnityEngine.Events.UnityEvent ue2 = new UnityEngine.Events.UnityEvent();
        ue2.AddListener(() =>
        {
            Debug.Log(2);
            boss.talking   = true;
            player.talking = false;
        });

        for (int i = 0; i < 2; ++i)
        {
            dialogTree.Current.DelegatePointer          = DelegatePointer.CreateInstance <DelegatePointer>();
            dialogTree.Current.DelegatePointer.Function = ue;
            dialogTree.MoveDown(0);
            dialogTree.Current.DelegatePointer          = DelegatePointer.CreateInstance <DelegatePointer>();
            dialogTree.Current.DelegatePointer.Function = ue2;
            dialogTree.MoveDown(0);
        }
        dialogTree.MoveDown(0);
        for (int i = 0; i < 2; ++i)
        {
            dialogTree.Current.DelegatePointer          = DelegatePointer.CreateInstance <DelegatePointer>();
            dialogTree.Current.DelegatePointer.Function = ue;
            dialogTree.MoveDown(0);
            dialogTree.Current.DelegatePointer          = DelegatePointer.CreateInstance <DelegatePointer>();
            dialogTree.Current.DelegatePointer.Function = ue2;
            dialogTree.MoveDown(0);
        }
        dialogTree.Current.DelegatePointer          = DelegatePointer.CreateInstance <DelegatePointer>();
        dialogTree.Current.DelegatePointer.Function = ue;
        dialogTree.MoveDown(0);
        //dialogTree.MoveDown(0);

        for (int i = 0; i < 2; ++i)
        {
            dialogTree.Current.DelegatePointer          = DelegatePointer.CreateInstance <DelegatePointer>();
            dialogTree.Current.DelegatePointer.Function = ue;
            dialogTree.MoveDown(0);
            dialogTree.Current.DelegatePointer          = DelegatePointer.CreateInstance <DelegatePointer>();
            dialogTree.Current.DelegatePointer.Function = ue2;
            dialogTree.MoveDown(0);
        }
        dialogTree.Current.DelegatePointer          = DelegatePointer.CreateInstance <DelegatePointer>();
        dialogTree.Current.DelegatePointer.Function = ue;
        dialogTree.MoveDown(0);
        dialogTree.Current.DelegatePointer          = DelegatePointer.CreateInstance <DelegatePointer>();
        dialogTree.Current.DelegatePointer.Function = new UnityEngine.Events.UnityEvent();
        dialogTree.Current.DelegatePointer.Function.AddListener(() => { Enable.SetActive(true); Disable.SetActive(false); });
    }
Пример #3
0
 // Use this for initialization
 void Start()
 {
     m_dialogtree = Resources.Load <DialogTree>("Dialog/Droomba/DroombaImmobilizedTree");
     m_dialogtree.MoveDown(4);
     m_dialogtree.MoveDown(1);
     m_dialogtree.Current.DelegatePointer          = DelegatePointer.CreateInstance <DelegatePointer>();
     m_dialogtree.Current.DelegatePointer.Function = new UnityEngine.Events.UnityEvent();
     m_dialogtree.Current.DelegatePointer.Function.AddListener(() =>
     {
         UnityEngine.SceneManagement.Scene topdown = UnityEngine.SceneManagement.SceneManager.GetSceneByName("TopDownShooter");
         GetComponent <ChangeToTopDown>().Trigger();
         UnityEngine.SceneManagement.SceneManager.LoadScene("TopDownShooter");
         //foreach()
     }
                                                               );
 }
Пример #4
0
        public System.Type[] GetFunctionParameterTypes()
        {
            List <System.Type> v_parameters = new List <System.Type>();

            if (DelegatePointer != null)
            {
                MethodInfo v_invoke = DelegatePointer.GetType().GetMethod("Invoke");
                if (v_invoke != null)
                {
                    ParameterInfo[] v_params = v_invoke.GetParameters();
                    foreach (ParameterInfo v_param in v_params)
                    {
                        if (v_params != null)
                        {
                            v_parameters.Add(v_param.ParameterType);
                        }
                    }
                }
            }
            return(v_parameters.ToArray());
        }
Пример #5
0
        static void Main(string[] args)
        {
            //var e1 = new Employee();
            //var e2 = new Manager();
            //if (e1 is Manager)
            //{
            //    var m = (Manager)e1;
            //    Console.WriteLine("A kind of Employee");
            //}
            //else
            //{
            //    Console.WriteLine("E1 is not a manager!");
            //}
            //var number=0;
            ////Console.WriteLine("Enter a number: ");
            //try
            //{
            //    number = InputNumber.InputLessThan20();
            //    Console.WriteLine($"You have entered {number}");
            //}
            //catch (FormatException e1)
            //{
            //    Console.WriteLine("It is not a valid integer!");
            //    Console.WriteLine($"Error details {e1.Message}");

            //}catch (OverflowException e2)
            //{
            //    Console.WriteLine("The number is too big or too small");
            //    Console.WriteLine($"Error details {e2.Message}");
            //}
            //catch(NumberMustLessThan20Exception e3)
            //{
            //    Console.WriteLine("The number is greater than 20 which is not allowed");
            //}catch(Exception e3)
            //{
            //    Console.WriteLine("Unknown exception!!!!");
            //}
            //var e1 = "myabcgmail.com";
            //Console.WriteLine( e1.isValidEmail());
            //  Console.WriteLine(e1.GetEmailLength());

            //List<int> numbers = new List<int>();
            //numbers.Add(5);

            //List<String> names = new List<string>();
            //names.Add("Pelle");

            //Nullable<int> studentAgeFromDatabase;
            //studentAgeFromDatabase = null;

            //int? salaryFromDatabase;
            //salaryFromDatabase = null;
            //if (salaryFromDatabase == null)
            //{
            //    Console.WriteLine("Salary has not entered from the DB");
            //}


            //C# 1.0
            DelegatePointer pointer = Add;

            Console.WriteLine(pointer(4, 5));
            pointer = Substract;
            Console.WriteLine(pointer(6, 2));


            //C# 2.0
            pointer = delegate(int a, int b) { return(a * b); };
            Console.WriteLine(pointer(2, 5));

            //C# 3.0
            pointer = (x, y) =>
            {
                return(x * y * 2);
            };

            //C# 3.5
            Func <int, int, int> add = (x, y) => { return(x + y); };

            add(4, 5);//> output 9

            Func <int, int, int, int> add3 = (a, b, c) => { return(a + b + c); };

            add3(3, 5, 6);//14

            //Void; no return
            Action <string> displayMessage = (msg) => { Console.WriteLine(msg.ToUpper()); };

            displayMessage("Hello world");
            //predeciate: method return true or false;and accept 1 parameter
            //Generic, Annoymimous method, delegate, lambda
            Predicate <int> checkEven = (n) =>
            {
                if (n % 2 == 0)
                {
                    return(true);
                }
                else
                {
                    return(false);
                }
            };

            List <int> numbers = new List <int>();

            numbers.Add(1); numbers.Add(3); numbers.Add(33); numbers.Add(20); numbers.Add(30);

            //C# 2.0
            var numberGreaterThan5 = numbers.FindAll(delegate(int n)
            {
                if (n > 5)
                {
                    return(true);
                }
                else
                {
                    return(false);
                }
            });

            //C# 3.5
            numberGreaterThan5 = numbers.FindAll(n =>
            {
                if (n > 5)
                {
                    return(true);
                }
                else
                {
                    return(false);
                }
            });
            Console.WriteLine("Numbers are > 5");
            foreach (var item in numberGreaterThan5)
            {
                Console.WriteLine(item);
            }

            //first number which is even
            var xyz = numbers.FirstOrDefault(n =>
            {
                if (n % 2 == 0)
                {
                    return(true);
                }
                else
                {
                    return(false);
                }
            });

            numbers.FirstOrDefault()
            Console.WriteLine("First even number " + xyz);


            Console.ReadLine();
        }
Пример #6
0
 private extern static void Register(DelegateClass d_class, DelegateNew d_new, DelegateBang d_bang, DelegateFloat d_float, DelegateSymbol d_symbol, DelegatePointer d_pointer, DelegateList d_list, DelegateAnything d_anything, DelegateObject d_object);
Пример #7
0
 private extern static void Register(DelegateClass d_class, DelegateNew d_new, DelegateBang d_bang, DelegateFloat d_float, DelegateSymbol d_symbol, DelegatePointer d_pointer, DelegateList d_list, DelegateAnything d_anything, DelegateObject d_object);