一.常用API

1.GameObject.SetActive( bool )  用于显示和隐藏游戏对象

二.射线

1.发射射线

Physics.Raycast(firePos.position,firePos.forward,out hit, 100,layerMark)

获取层级   可以通过layermark的字符串名称,或者通过安慰按位运算符进行获取(1<<8)

2.屏幕射线的应用

3.固定射线的应用

4.线性检测

Physics.Linecast(Vector3 star,Vector3 end,out RaycastHit);	检测两个对象之间有没有障碍物

5.球形检测

Physics.OverlapSphere();检测以**为中心,半径多少之内,是否有游戏对象(带有碰撞器的游戏对象)
 rig.AddExplosionForce(1000, cubeTrans.position, 5);  添加爆炸力

三.委托

1.delegate 委托的关键字

委托可以简单的理解为一种方法的类型

namespace Test
{
    public delegate void Dele();
    class Program
    {
        static void Main(string[] args)
        {
            Student s = new Student();
            Dele d = s.Drink;
            d+=s.Eat;
            d();
            Console.ReadKey();
        }

        public class Student
        {
           public  void Eat()
            {
                Console.WriteLine("吃东西");
            }
            
           public void Drink()
            {
                Console.WriteLine("喝水");
            }

        }
    }
}

2.匿名函数

Dele d = delegate (string str) { return str.ToUpper(); };

3.Lambda表达式

(形参)=>{方法};        =>: 表示goes to的意思

public delegate void Dele1();
        public delegate void Dele2(int a);
        public delegate string Dele3(string name);
        static void Main(string[] args)
        {
            Dele1 d1 = () => { };
            Dele2 d2 = (int a) => { Console.WriteLine(a); };
            //形参的括号中 可以不用定义形参的类型 直接写出来 Lambda表达式会自行判断
            Dele3 d3 = (name) => { return name; };
        }

4.泛型

 /// <summary>
       ///Get<T> 其中<T>为标志变量
        /// 泛型
        /// </summary>
        /// <typeparam name="T"> struct【T被限制为 值类型】</typeparam>
        /// <param name="a">形参</param>
        /// <param name="b">形参</param>
        public void GetNum<T>(T a,T b)where T: struct
        {
            T x = a;
            a = b;
            b = x;
        }

自定义泛型的约束:

T: struct   限定T类型只能为值类型

Q:class    限定Q类型只能为引用类型

O:ICloneable    限定O类型只能为 ICloneable  的子类  (接口类)

K:Person   限定K类型只能为 Person 或者 Person的子类(其中person类为自定义类)

W:class,new()   限定W类型只能为引用类型,并且使用的是无参数构造函数

此T、Q、O、K、W表示的都是泛型,可以用其他大写字母来代替,一般是用大写的T来表示泛型

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐