问题未解决,但原始问题已解决。(问题:本帖标题。原始问题:如何在Unity中让代码创建的输入框能够显示光标。)
考虑到有人可能希望我将解决过程发出来,因此我描述我的解决过程:
我先是意识到Unity源码中应该有对复制粘贴的定义,于是查Unity源码,查到源码位于编辑器安装路径下的Editor/Data/Resources/PackageManager/BuiltInPackages/com.unity.ugui
阅读了源码后,我找到了编辑器菜单栏中InputField的原理,但是依然没找到运行的函数与复制粘贴的函数。
然后,我去谷歌搜索【TMP_InputField missing caret】,没找到满意的文章。(之前已经在百度与CSDN搜了一圈,没搜到有价值的东西。)
我又搜索【create TMP_InputField with code】,找到了这篇文章:https://forum.unity.com/threads/creating-a-complete-tmp-input-field-via-script.625735/
这篇文章中作者遇到了和我一样的问题,解决方式是使用TMP_InputField的OnEnable函数。
但是这是2015年的文章。我在我的编辑器中尝试使用OnEnable,但是它是私有函数、禁止使用。
后来我发现可以对TMP_InputField所在的GameObject使用SetActive函数,它会调用OnEnable。
于是成功解决问题,代码创建的文本框也可以显示光标了。
有很多种开发方式。此处我说一种:
第一步,购买电脑,安装网线,启动电源。
第二步,打开百度,搜索阿里云,进入官网,租用云服务器,根据官方教程来配置系统并启动云服务器。(大约一个小时。最简单的服务器每年一百元。)
第三步,远程连接云服务器,在云服务器上下载PHPStudy,在PHPStudy上以云服务器IP地址为名、建立网站。PHPStudy会自动创建一个文件夹。(大约半个小时)
第四步,在文件夹中新建记事本文件,书写html代码(包括CSS与JS与PHP),保存为html格式。
假设你的云服务器IP为205.60.81.247,假设你的文件名为01.html,那么其他电脑上访问【http://205.60.81.247/01.html】即可看到你的html文件所呈现的网页。
注意:
1.如果要使用【.com】之类的域名,那么需要购买并解析。普通域名大约五十元每年。可以在阿里云解析。
2.如果在PHPStudy文件夹下新建文件夹【测试】,并在【测试】中创建【01.html】,那么外界以【http://205.60.81.247/测试/01.html】访问该页面。
3.如果只是搭建网站,那么可以不使用云服务器,而是云虚拟主机。云虚拟主机更便宜。
4.如果不想使用云、而是使用本机,那么需要你的本机拥有固定的公网IP地址。一般家庭主机的公网IP地址是不固定的,需要去营业厅申请固定IP专线,费用大约一万元。