Unity开发部分常用代码-01

175 阅读1分钟

「这是我参与2022首次更文挑战的第14天,活动详情查看:2022首次更文挑战」。

作为一名优秀的开发者,对于技术的探求应该是永无止步的,如何让自己更进步,那就只有不停的学习,不停的充电.而这些都都是说起来容易做起来难,坚持才是难的地方 --蛙哈哈

最近一直在总结一些自己常用的代码逻辑,可以为大家提供一些参考,可以省去一些重复写某些固定代码的时间.

如何通过点击选中某个物体

1.给这个物体设置一个layer 2.通过射线去检查碰到的物体有没有这个layer

 private LayerMask _layers;
 private void On_TouchUp(Gesture gesture)
 {
     //从手指触摸的位置发出一条射线
     //_layers表示你要去检测的层的集合
     Ray ray = Camera.main.ScreenPointToRay(gesture.position);
     RaycastHit hit;
     if (Physics.Raycast(ray, out hit, 1000, _layers))
     {
         //碰到了layer == 10的物体
         if (hit.collider.gameObject.layer == 10)
         {
             //todo something
         }
     }
 }

计时器

计时器分为三种 1.Update deltaTime的方式

 ​
 public float timer = 3;
 void Update()
 {
     timer -= Time.deltaTime;
     if(timer <= 0)
     {
         Debug.Log("Timer has finished!");
     }
 }

2.协程

 IEnumerator CreateAllChip(){
     for (int i = 0; i < prefab_chip.Length; i++) {
         yield return new WaitForSeconds(2);
     }
 }

MSG1里的Timer对象就是基于第一种做法封装出来的接口,可以借鉴

时间戳转本地时间

方法1:先new一个1970年的本地时间对象,再加入时间戳的秒数,即可生成本地时区时间, 方法2:先new一个当前时间戳的时间对象,再转换为本地时区时间. 两个方法的差别在于  在实行夏令时的时区,方法2 可以准确的转换为使用夏令时的时间,而方法1只能获取非夏令时时间.

如何查看真机Log

手机连接电脑 运行Cmd adb logcat > log.txt 查看手机的log 并且重定向到文件 通过此log 就可以查找相关的问题

1583744636017-1164d877-f4d7-4b7c-afcd-65187e6c896d.png

移除玩家名字输入中的空格

 self.input.value = string.gsub(self.input.value, "\n", "")
 EventDelegate.Add(InputData.onChange, OnGuildInputChange);
  private void OnGuildInputChange()
  {
      InputData.value = InputData.value.Replace("\n", "");
  }

如何检测emoji表情

 local function isIncludeEmoji(text)
     local lastIndex = 1
     local len = utf8.len(text)--utf8解码长度
     for i = 1, len do
         local s1 = string.sub(text, lastIndex, utf8.offset(text, i + 1)  -1)
         local byteLen = string.len(s1)--编码占多少字节
         if byteLen > 3 then--超过三个字节的必须是emoji字符
             return true
         end
         lastIndex = lastIndex + byteLen
     end
     return false
 End

vscode后辍名支持

 "files.associations": {
         "*.lua.txt": "lua",
     }

vscode隐藏meta文件

1593096351795-3f99865c-4aae-4f73-a67a-60e1095a79be.png