退格键删除input中光标指定的字符串_我的世界复现过程中遇到的问题

最近在学习Unity,找了个视频学习我的世界的复现,途中遇到了一些问题,记录下来,万一以后遇到了类似的问题,就可以解决了。

视频链接:http://www.sikiedu.com/course/36/task/1168/show

0X01

大概unityhub准备进入项目的时候发现提示我编辑器不存在(明明是有的),于是在unityhub中下载编辑器,但是需要登录,登录界面一直白屏,登录不上。我于是将之前的东西全部删掉。我于是重新在官网下载untiyhub和编辑器(项目里没有什么东西),之后发现又出现了这种情况

解决办法

我自己找了一个土方法,我发现我的unity是开机启动的,如果开机的时候没有网络,就不会自动登录上unityhub,而且会弹出警告,于是我赶在电脑自动弹出untiy之前,提前登录校园网(笑),之后就没有这种情况了。太机智了。

0X02

98d638d6b1c15c2bc1370a617c7bbfba.png

视频中提到创建一个第一人称的摄像机,但是我的版本是2020之后的,他的版本比我低好多,我并没有那个选项。

解决办法

1c39429df00ee50da14dff531c80a6b4.png

unity商城里面有,就是那个standard assects.安装之后会出现一个这个名字的文件,我们所需要的就在里面

0X03

安装完上一个那个standard assects之后,出现了这种问题(笑)

4d662c149b4469d316f93e85861fc783.png

afa989a2dc3c213bd6c8488bb8ad1f99.png

解决办法

https://blog.csdn.net/zhang2333333333/article/details/105000621

看新问题,那里就行,问题一下子就被解决了

0X04

无法给物体添加脚本

当我想打开脚本时出现了这种情况

22b72836f07e9599eb64b3bd3c016fa4.png

解决方案

我首先解决了打不开的问题

电脑默认的js编辑器是Microsoft JScript,所以我下载了一个notepad+(也是个编辑器)

然后修改了js文件的默认打开编辑器

63d1bd95150ec3f3a65af239d6bb152c.png

设置,然后找到应用

ad91e6371fe9a5627bc9beedc4bedbd9.png

按文件类型指定默认应用

4f56723bcec77047026db35d06eda9f0.png

找到js,修改,于是我就可以在unity中打开脚本了(笑)

在一顿搜索中,我发现了原因,原来是Unity弃用了JS,所以我的JS脚本无法使用了(好耶)

我找到了一个新的C#脚本,(可喜可贺),

最后的脚本是

using System.Collections;using System.Collections.Generic;using UnityEngine;public class MapTexture : MonoBehaviour{    // Start is called before the first frame update    void Start()    {        Map();    }// Update is called once per framevoid Update(){    }void Map(){    MeshFilter filter = GetComponent();    Mesh mesh = filter.mesh;    if (filter != null)        mesh = filter.mesh;    if (mesh == null || mesh.uv.Length != 24)    {        Debug.Log("Attach To Cube");        return;    }    var uvs = mesh.uv;    //Z轴正向侧(背面)    uvs[0] = new Vector2(0.0f, 0.0f);    uvs[1] = new Vector2(0.333f, 0.0f);    uvs[2] = new Vector2(0.0f, 0.333f);    uvs[3] = new Vector2(0.333f, 0.333f);    //顶面    uvs[8] = new Vector2(0.334f, 0.0f);    uvs[9] = new Vector2(0.666f, 0.0f);    uvs[4] = new Vector2(0.334f, 0.333f);    uvs[5] = new Vector2(0.666f, 0.333f);    //Z轴负向侧(正面)    uvs[10] = new Vector2(0.667f, 0.0f);    uvs[11] = new Vector2(1.0f, 0.0f);    uvs[6] = new Vector2(0.667f, 0.333f);    uvs[7] = new Vector2(1.0f, 0.333f);    //底面    uvs[12] = new Vector2(0.0f, 0.334f);    uvs[13] = new Vector2(0.0f, 0.666f);    uvs[15] = new Vector2(0.333f, 0.334f);    uvs[14] = new Vector2(0.333f, 0.666f);    //左面    uvs[16] = new Vector2(0.334f, 0.334f);    uvs[18] = new Vector2(0.666f, 0.666f);    uvs[19] = new Vector2(0.666f, 0.334f);    uvs[17] = new Vector2(0.334f, 0.666f);    //右面           uvs[20] = new Vector2(0.667f, 0.334f);    uvs[22] = new Vector2(1.00f, 0.666f);    uvs[23] = new Vector2(1.00f, 0.334f);    uvs[21] = new Vector2(0.667f, 0.666f);    mesh.uv = uvs;}}

所以这个问题就被完美解决掉了

0X05

关于添加光标那个视频中的修改代码我并未找到相应部分,猜测是两个版本有所差别,

解决方案

原来最新的脚本里根本就没有这个功能

所以我就重新弄了个脚本打算试试行不行

using System.Collections;using System.Collections.Generic;using UnityEngine;public class NewBehaviourScript : MonoBehaviour{    // Start is called before the first frame update    void Start()    {}// Update is called once per framevoid Update(){   /* if(Input.GetKeyDwon(keyCode.P))    {        Cursor.visible = false;    }    if(Input.GetKeyDown(KeyCode.O))    {        Cursor.visible = true;    }*/}}

但是我又发现另一个问题(头疼),我的unity里无法识别Input这个类,那么问题来了,下载的脚本里没有input这个函数,那么它是怎么判断我的键盘呢?

识别input这个类的方法是将外部脚本编辑器改为自己的编辑器即可(详见https://jingyan.baidu.com/article/49ad8bce4ffc4e5835d8fa49.html)

然后发现上面的代码没有什么卵用。

直接在update类下面添加一句Cursor.visible = true;即可。

不过光标会不断闪烁,有点难截取到,所以没有图片

现在有两个问题,一个是解决掉光标不断闪烁的问题,第二个问题是这个光标太难看了,我想在游戏中换一个光标,就像我的世界游玩过程中那种。

解决光标图案:

代码:

using System.Collections;using System.Collections.Generic;using UnityEngine;public class ChangeCursor : MonoBehaviour{ public Texture2D cursorTexture; // Start is called before the first frame update    void Start() {}// Update is called once per framevoid Update(){    Cursor.SetCursor(cursorTexture, Vector2.zero, CursorMode.Auto);}void OnMouseEnter(){    Cursor.SetCursor(cursorTexture, Vector2.zero, CursorMode.Auto);}void OnMouseExit(){    Cursor.SetCursor(null, Vector2.zero, CursorMode.Auto);}}

然后将代码贴到Camera中即可

随后将自己想要的图片贴入

35c5d4c9c9de38d22d15c6d069468fb5.png

Cursor Texture中

0X06

光照系统问题

86873216e937fc2d75a0aed4e6e5cd91.png

光照系统并不是靠移动Directional Light 来实现的,而是通过平行光所照射的位置来决定的。就是点击键盘上的'r'键即可进行调整

0X07

我的世界中一天的时间是20分钟,光照旋转一圈是360度,所以要一秒0.3度,但是出现了这种情况,报错了

29f3a02815422b203f0b0fa94d683263.png

于是我换成double类型

7261782737f2394ba24d69f96312fecb.png

也不行,

解决方案

float类型,但是0.3后面添加一个'f'(吐血)

14b09d6e1c49d3c6995dfd9aaa9a20f6.png

新状况:

日月转换程度有点太快了,所以我打印了一下rotatespeed,发现打印出来是10

解决方案:

618c47a21bc076a82340bd687540a64f.png检视面板中也需要修改

做完了,这个复现

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值