unity中数字计算的学习

 

数字计算的学习

一.对变量类型的认识

变量类型

变量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");//调用最高分,在属性面板显示最高分数

        }

    }

}

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值