笔记

7.5
1,单例下的private变量 无法获取
2,setactive为false时 脚本也会失效
7.6
1,二维数组:int[,]=new int[3,4]{{*}}创建一个3行4列的二维数组

7.7

1,Animator动画机 里的 Parameters参数,要用 Get+类型 和 Set+类型 来获取和设置

Setfloat("参数名",set的数值)  SetBool("参数名",判断的条件) 符合就Set为True

2,FixedUpdate 里要用 Time.fixedTime fixedDeltaTime是固定时间 和 FixedUpdate 的时间有区别

3,Quaternion rotation = Quaternion.LookRotation(targetDir, Vector3.up);//需要旋转的方向,旋转围绕的轴

     transform.rotation = Quaternion.Lerp(transform.rotation, rotation, Time.fixedTime * rotationSpeed);

四元数控制旋转??是一个有大小有方向的数

4,光线穿墙的原因:

1)查看一下相关物体的材质,记得勾选“投射阴影” Cast Shadow
2)检查物体的材质shader,看是否支持灯光,有些材质是不支持灯光的,就不会计算灯光。

3)查看你灯光的阴影模式shadow type,如果是 no shadow就没有阴影。应该把它设置为soft shadow软边阴影 或硬边阴影。

4)也有可能是你灯光的遮罩设置cull mask的问题, 看有没有选中你需要投射阴影物体所在的层layer。如果是everything, 就是所有层的物体都会照亮。

7.8

1,AudioSource.PlayClipAtPoint(audioClip,audioPosition.position) 创建音效

2,Vector3 local=Transform.localPosition

  Vector3 world=Transform.position

worldPos=transformA.TransformPoint(local) local相对于transformA的位置 transformA在原点得到的则为世界坐标

7.10

1,Window=>Lighting=>Setting=>SkyBox 设置天空盒子

2,Edit=>ProjectSetting=>Quality=>PixelLightCount 设置可以看到的Light个数

3,Physics.Raycast(V3起始点, V3射线方向 , out hitInfo) 放出射线Ray,碰撞到物体返回为一个bool值,碰撞信息会存储到hitInfo中。

ref 关键字使参数按引用传递。其效果是,当控制权传递回调用方法时,在方法中对参数的任何更改都将反映在该变量中。若要使用 ref 参数,则方法定义和调用方法都必须显式使用 ref 关键字。out 关键字会导致参数通过引用来传递。这与 ref 关键字类似,不同之处在于 ref 要求变量必须在传递之前进行初始化。若要使用 out 参数,方法定义和调用方法都必须显式使用out 关键字。

4,做Navigtion的时候场景要设为static

 

5,一个简单的寻路

   NavMeshPath path = new NavMeshPath();

 

   if (enemyNav.CalculatePath(V3目标, path)) //计算路径,数据在path里
   {
       Vector3[] wayPos = new Vector3[path.corners.Length + 2]; //corners是一个数组,里面是路径上点的V3坐标
       wayPos[0] = transform.position;
       wayPos[wayPos.Length-1] = temp;
       for (int i = 0; i < path.corners.Length; i++)
       {
          wayPos[i + 1] = path.corners[i];
       }
       float distance = 0;
       for (int i = 1; i < wayPos.Length; i++)
       {
           distance += (wayPos[i] - wayPos[i - 1]).magnitude;//表示向量的长度,

 

       }

7.13

1,Navigation AutoBake 的作用是让物体到达目标位置立刻停下

7.17

1,

+, -, !, ~, ++, --这些一元运算符只有一个操作数,且可以被重载。
+, -, *, /, %这些二元运算符带有两个操作数,且可以被重载。
==, !=, <, >, <=, >=这些比较运算符可以被重载。
&&, ||这些条件逻辑运算符不能被直接重载。
+=, -=, *=, /=, %=这些赋值运算符不能被重载。
=, ., ?:, ->, new, is, sizeof, typeof这些运算符不能被重载。

 

2,接口注意的几点:

  1. 接口方法不能用public abstract等修饰。接口内不能有字段变量,构造函数。
  2. 接口内可以定义属性(有get和set的方法)。如string color { get ; set ; }这种。
  3. 实现接口时,必须和接口的格式一致。
  4. 必须实现接口的所有方法。

3,覆盖“+”操作符

public static Student operator +(Student s1, Student s2) { return new Student(s1.age + s2.age, s1.name + " And " + s2.name); }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值