数字计算的学习

一.对变量类型的认识

变量类型

变量GameObject

字符串string

整数int

小数float

布尔bool

将上节课的内容放在文件夹1中,新建文件夹2,创建脚本number

字符串类型变量

需要使用到打印的方法Console面板中查看效果

void Start()
    {
        print("Orange");//将Orange打印到Console面板中
        Debug.Log("Taike");//另一种打印方法,两者实质上相同
    }

这样就会在Console中打印生成Orange和Taike;print是Debug的简单封装写法

整数int

小数float

小数必须要在后面加上f,否则报错

布尔bool

一般两个结果true/false通常用来判断状态

相关代码展示如下:

void Start()
    {
        int a = 3;
        float b = 0.3f;
        bool c = true;
        print("Orange");//将Orange打印到Console面板中
        print(a);
        print(b);
        print(c);
    }

int整数类型转化为字符串类型?

void Start()
    {
        int a = 3;
        string b;
 b=a.ToString();//转换方法
        print (b);
    }

此时会在Console会生成一个“3”但不是int类的3而是string的3

字符串类型如何转化为int类型?

string c = "30";//注意此时的30必须要用引号引起来
        int d;
 d=int.Parse(c);//转换方法
        print(d);

二.计时器及加减运算

1.创建一个计时器脚本

public float a;//使用小数类型来计算开始计时时间(在public class中)

a = 60;//从60秒开始计算(在void start中)

a -= Time.deltaTime;//每秒钟a的数值减少1(在void Update中)

此时点击播放会时间倒计时精确到了小数点后五位

2.对时间的倒计时进行四舍五入的代码

public float  b;//因为a的类型是小数,所以b的类型也得是小数(在public class中)

b = Mathf.Round (a);//此时四舍五入到没有小数点(在void Update中)

如何对计时器中的数值精度进行设置

将a x10再进行四舍五入,进行四舍五入后再除以10(100等)如

public float c; (在public class中)

c = Mathf.Round(a * 10)/10; (在void Update中)

代码如下:

public class jishiqi : MonoBehaviour
{
    public float a;//使用小数类型来计算开始计时的时间
    public float  b;//因为a的类型是小数,所以b的类型也得是小数
    public float c;
    void Start()
    {
        a = 60;//从60秒开始计算
    }
 
    // Update is called once per frame
    void Update()
    {
        a -= Time.deltaTime;//每秒钟a的数值减少1
        b = Mathf.Round (a);
        c = Mathf.Round(a * 10)/10;
    }
}

算数:加减运算和字符串的运算、string的运算

public class suanshu : MonoBehaviour
{
    int a = 10;
    int b = 20;
    float A = 10;
    float B = 20;
    int c;//加法
    int d;//乘法
    float e;//小数除法
    int f;//整数除法
    string st;//string字符串的运算
    string daying;//需要打印在Console的代码
    void Start()
    {
        c = a + b;
        d = a * b;
        e = A / B;
        f = b / a;
 
        st = "taike";
        daying = st;
        print(c);
        print(d);
        print(e);
        print(f);
        print(daying+"zaixian"+c);//string的字符串的内容加减,因为st已经进行了双引号的书写,所以daying无需添加引号,但是string字符串是需要添加引号的
    }
    void Update()
    {
    }
}

随机数的案例(方法较笨)

在想要的区间里获取一个想要的数字

public class suijishu : MonoBehaviour
{
    public int a;//先设置一个公共变量a
    void Start()
    {    }
    void Update()
    {
        if (Input.GetKey (KeyCode.Mouse0 ))//若鼠标点击
        {
            a = Random.Range(0, 5);//a在0-5之间进行随机选取。这是一个包括0但是不包括5的整数;若是小数则都包括。
        }
    }
}

案例

  1. 创建5个Cube物体可以使用Ctrl+D复制
  2. 当随机到了的物体向上移动一个单位
  3. 代码如下:
public class suijishu : MonoBehaviour
{
    public int a;//先设置一个公共变量a
    void Start()
    {    }
    void Update()
    {
        if (Input.GetKeyDown (KeyCode.Mouse0 ))//若鼠标点击,则会触发效果,如果没有Down则鼠标移动就会产生产生效果
        {
            a = Random.Range(0, 5);//a在0-5之间进行随机选取。这是一个包括0但是不包括5的整数;若是小数则都包括。
    GameObject.Find(a.ToString ()).transform.Translate(0, 1, 0);
            //找到数字代表的正方体,位置上移动1大小
        }
    }
}

永久数据的储存  代码:PlayerPrefs.SetInt

public class setint : MonoBehaviour
{
    public int a;
    void Start()
    {    }
    void Update()
    {
        if(Input.GetKeyDown (KeyCode.Mouse0 ))
        {
            a++;  //当单击鼠标左键数值加一
            if (a>PlayerPrefs.GetInt ("Player Score "))
            PlayerPrefs.SetInt("Player Score", a);//存储数据。setint将整数存储到player Score文件中,此时是存储永久数据,这样就不会被清除
            print(PlayerPrefs.GetInt("Player Score"));
        }
    }
}

案例:单击左键得一分,判断是否为最高分,若是,则进行存储

public class setint : MonoBehaviour
{
    public int a;
    public int b;//调用文档
    void Start()
    {
        if (PlayerPrefs.HasKey("Orange") == false)//判断是否存在Orange文档记录分数
        {
            PlayerPrefs.SetString("x", "0");//如果不存在则将分数记为0
        }
    }
    void Update()
    {
        if (Input.GetKeyDown (KeyCode.Mouse0 ))
        {
            a++;  //当单击鼠标左键数值加一
            if (a > PlayerPrefs.GetInt ("Orange"))//若a大于已经存在的数值则进行储存,若没超过则不发生任何变化
            {
                PlayerPrefs.SetInt("Orange", a);//存储数据。setint将整数存储到player Score文件中,此时是存储永久数据,这样就不会被清除
            }
            print(PlayerPrefs.GetInt("Orange"));//输出最高分
            b = PlayerPrefs.GetInt("Orange");//调用最高分,在属性面板显示最高分数
        }
    }
}