2018.11

1、监听动画状态,通过继承StateMachineBehaviour,来监听进入和退出,但是每次setActive()都需要重新监听,可以放到OnEnbled。代码参考博客《https://blog.csdn.net/jason_520/article/details/54630820

2、摄像机切换,一个物体在两个摄像机中切换,首先设置layer改变,可以通过第一个摄像机把世界坐标转化到屏幕上面,再通过第二个摄像机从屏幕转化到世界坐标系(WorldToScreenPoint/ScreenToWorldPoint)。

3、GameObject.name.Contains(),name都是继承String,一般的继承Monobehaiour,都有这个name属性,可以使用String的属性,通过Contains来判断name是否包括没有这个字符。

4、使用 GetComponentsInChildren来遍历子物体的时候,会遍历自身 ;使用 foreach (var item in Transform),可以获得子物体下所有的Transform,不包括自身和子物体的子物体

5跑步动画的过程,可以转向和起步加速,通过动画系统的混合树系统,通过参数来控制动画过渡,使用TimeLine做过程动画。

6、随机数使用using System.Linq;_randomNum.Distinct().ToList();
  List<int> Num = new List<int>();
  while (Num.Count<15)
  {
    Num.Add(Random.Range(0, 15));
    Num = Num.Distinct().ToList();
  }

7、四种物体,每个三种,四个顺序不变的四种物体按钮,一共十二个字每个字对应一个物体。
  做法:先随机一个12不按照顺序的数字,然后按照按钮顺序对应每种物体分配三个,取的顺序数组的值/3得到对应按钮的顺序,可以对存储字的数组进行位置交换,把正确答案的索引换到对应按钮的索引位置
  //add获得按钮索引和单词索引
  int buttonIndex = _randomNum[_currentPosition] / 3;
  int wordIndex = words.IndexOf(targetWord);

  //交互word的字
  WordData temp = words[buttonIndex];
  words[buttonIndex] = words[wordIndex];
  words[wordIndex] = temp;

8、摄像机nearClipPlane和fieldOfView共同调节视图大小,一个是控制摄像近裁剪平面大小,一个控制这个视角大小。

9、移动模型搭建模型的时候会有穿透,设置一个相机专门渲染当前被搭建的物体块,当移动被渲染物体是改变渲染物体层级。同时注意模型的pivot和center模式,改变position都是获得pivot模式下的。

10、旋转朝向问题,不使用lookat的时候,使用两个点向量,使用Quaternion.LookRotation(forwardDir);求出四元数求出角度都可以,注意旋转对象时物体坐标轴一定和世界坐标轴保持一致,才能完美旋转,不然需要可能需要更改对应轴的值,这时候需要建立一个空物体给父对象用来对准世界坐标轴
11、使用dotween的时候,做延迟可能又有一些错作为警告不会报出来,即在循环函数里面做延迟和监听都是不同步的不能采用循环的i来进行相关操作,因为循环会先执行完毕,

后者bug参考闭包问题https://www.cnblogs.com/HQFZ/p/4903400.html


扫描二维码关注公众号,回复: 5576964 查看本文章

猜你喜欢

转载自www.cnblogs.com/JUNLLLL/p/10553348.html