C#基础及Unity中的C#基础使用

  • Visual Studio基础操作

1.ctrl+F5 启动

2.Home 键可定义到一行代码的最前端,End键可定义到一行代码的最后端

PageUp及PageDown是对当前文档的翻页

3.ctrl+k        ctrl+c 组合快捷键 注释多行;ctrl+k        ctrl+u 组合快捷键 取消多行注释

4.ctrl+d 可直接复制黏贴代码,无需ctrl+c ctrl+v

  • C#基础内容及Unity中基础使用

1.命名规则: 变量:enemyHp,方法或类:EnemyHp

2.输入输出:

//输出
    Console.WriteLine();
//格式化输出
    Console.WriteLine("两个数相加{0}+{1}={2}",a,b,c);
//or
    Console.WriteLine("a"+a+" ");
//单个输出
    Console.Write();

//输入
    Console.ReadLine(); //输入为字符串
//常用输入
    int a = Convert.ToInt32(Console.ReadLine()); //单变量输入
//输入一串长度未知的数组
    string str = Console.ReadLine();
    string[] array = str.Split(' ');

    int[] numarray = new int[array.Length];
    int i = 0;
    foreach (string tmp in array)
    numarray[i++] = Convert.ToInt32(tmp);

//让程序暂停,按任意键继续
    Console.ReadKey();

//U3D中的控制台输出
    print();
    Debug.Log();
    Debug.LogWarning(); //警告
    Debug.LogError();  //错误

3.变量

//float 输入小数会默认为double
    float myFloat = 12.5f;
    double myDouble =12.6;

//隐式显示转换
    //小到大为自动,如int->double
    //大到小
        byte myByte=(byte)myInt;
    //字符串转数字
        int num = Convert.ToInt32(str);
        double num = Convert.ToDouble(str);
        int num = Convert.ToString(str);

4.特殊运算及字符

        ①@会让转义字符(如\n)无效,最终输出为\n

        ②三目运算符

string resStr =(myInteger<10)?"less than 10":"Greater than 10";

        ③随机数

Random random = new Random();
int num = random.Next(1, 7); //含最小值不含最大值

5.不太熟的几个选择及循环

//Switch
    int state =3;
    int switch(state)
    {
        case 0:{/*执行语句;*/break;}    //state==0
        case 1:{/*执行语句;*/break;}    //state==1
        //...
        default:{/*一个情况都不等于时;*/;break;}
    }

//while
    while(){    }
//do while
    do{    }while();
//foreach
    foreach(int tmp in array)
        Console.WriteLine(tmp);    //不知道索引

6.枚举

//枚举定义
    enum GameState
    {
        Pause,        //数值上默认为0
        Failed,    //数值上默认为1
        Success,    //数值上默认为2
        Start    //数值上默认为3
    
    }

//枚举使用
    GameState state = GameState.Start;
    if(state == GameState.Start)

//枚举数据类型修改
    enum GameState:byte    //数据以byte存储,默认为int
    {
        Pause,        
        Failed,    
        Success,    
        Start    
    
    }

7.结构体

//结构体定义
    struct Position
    {
        public float x;
        public float y;
        public float z;
    }

//结构体使用
    //声明    position enemyPositon;
    //调用内部变量    enemyPosition.x=12;

//结构体与枚举组合使用
    //声明时
    enum Direction{West,North,East,South}
    struct Path
    {
        public float distance;
        public Direction dir;
    }

    //使用时
    path path1;
    path1.dir=Direction.East;
    path1.distance=1000;

//结构体函数
    //结构体内函数正常定义
    //调用时
    CustomerName myname;    //CustomerName为一个结构体名
    Console.WriteLine(myName.GetName());

8.数组

//数组声明
    int[] scores;

//初始化
    //1
        int[] scores={23,12,45,77,14,56};
    //2
        int[] scores=new int[10];
    //3 
        int[] scores=new int[10]{123,12,23,45,56,78,44,76,23,85};

//排序
    Array.sort(numArray);

//数组传参
    //return 数组
    static int[] GetDivisor(int number)
    {
        //...array在内部初始化
        return array;
    }
    
    //外部调用时
        int[] array=GetDivisor(num);

    //数组为形参
    static int max(int[] array)
    //外部调用时
    max(array);

//参数数组
    static int Plus(params int[]array)
    //调用时
    int sum2=Plus(23,4,5,66,23,56);
    //使用参数数组时实参可随便写,会在函数内部自动构造为一个数组

9.字符串数组

//初始化
    string[] names = new string[]{"xxx","xx","xxxxx","x"};    
        //new string[]中[]的个数可写可不写

//遍历
    for(int i=0i<array.Length;i++){    }
    //or
    foreach(string tmp in array)
        Console.WriteLine(tmp);

//常用方法
    str.ToLower();    //返回字符串小写副本
    str.ToUpper();    //返回字符串大写副本
    str.Trim();        //去除所有前导空格和尾部空格
    str.Start();    //去除所有前导空格
    str.End();    //去除所有尾部空格
    str.split();    //按照指定字符拆分得到多个拆分后的字符串数组

10.委托

public delegate double Mydelegate(double parm1,double parm2);
//定义一个委托和函数差不多,区别在于定义委托加delegate关键字,委托的定义不需要函数体

    static double Multiply(double parm1,double parm2)
        {    return parm1 * parm2 ; }

    //调用时
    MyDelegate de;
    de=Multiply;
    de(200,34.1);

//委托的返回值和参数需与委托的函数一致

11.类

//类定义
    class Enemy{

        public string name;
            int hp;
    }

//声明
    Enemy enemy1 = new Enemy();
    //默认情况下 Enemy enemy1 = null;

//调用方法或变量
    enemy1.name;

//命名空间
//不同命名空间下有不同的类,如需使用某个类,需要先引入命名空间
   using xxx;    //引入

    namespace MyGame{

        }   //定义


12.U3D中组件及游戏物体的获取

//获取组件

    Transform t = GetComponent<Transform>();
    collider[] colliders = GetComponents<Collider>();
    //获取物体下的所有collider组件

    GetComponentsInChildren<Collider>();    //获取游戏物体下所有Collider子组件
    GetComponentInChildren<Collider>();    //获取游戏物体下找到的第一个Collider子组件

//组件调用

    public GameObject player;    //此时在u3d中拖拽物体入player
    player.GetComponent<Rigidbody>(); //调用

//禁用组件

    BoxCollider collider = GetComponent<BoxCollider>();    //获取该物体的boxcollider
    collider.enabled=false;    //禁用,其下方法均无法使用

//启用脚本

    learn02.Start();    //脚本名为learn02

//获取游戏物体GameObject
    //1.
        public GameObject //再在u3d中拖拽物体    
       //or
        public Camera mainCamera;    //此时只能拖拽有Camera这个组件的GameObject

    //2.
        transform.Find("GameObject(1)/GameObject")
        //找到GameObject(1)下的GameObject

    //3.
        GameObject mainCamera = GameObject.Find("Main Camera");
        //查找到第一个叫Main Camera的物体

    //4.标签,需先在unity中设置好tag
        GameObject player = GameObject.FindWithTag("Player");
        

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值