Unity学习笔记题目

1. rotation是什么类型的 让一个物体旋转 45,90,90 代码的书写

四元数类型
transform.Rotation = qu…equal(45,90,90);

2. 触发和碰撞的区别和联系 tag 和层的用法

触发会穿不会碰,碰撞会碰不会穿
碰撞之后才会触发 先有碰撞再有触发
tag指标签,是给gameobj分类用的
层一般用于灯光射线

3. 详细列举在函数生命周期中几个重要的方法

一整套生命周期

4. 实例化物体 instantiate() 参数有几个 若一个参数返回类型是什么 三个参数返回类型有几个

一般是3个 也有1个
一个的返回类型是不知道位置,旋转
三个的类型包括位置旋转 (perfab,V3,Qua…,identy)

5. 对一个按钮动态添加响应时间的代码

on click

6. 协同可以传递参数吗? 参数类型是什么

可以,参数的类型是gameobject

7. 在碰撞检测中我们是怎么样判断是哪种物体进入我的碰撞里面

通过标签判断 通过GameObject名字判断

8. 如何捕捉在程序运行时候的错误

控制台

9. 假如一个方法有三个主要的逻辑 我们是写三个方法还是都堆在一起 为什么

写三个方法
因为这样方便修改,看的逻辑清楚,防止方法之间相互混淆

10. 脚本动态挂载代码 脚本禁用代码

get.compant<>()
enable或者disable

Unity学习笔记题目

11.扇形攻击的代码

public Transform Target;
    private float SkillDistance = 5;//扇形距离
    private float SkillJiaodu = 60;//扇形的角度
 
    void LateUpdate()
    {
        float distance = Vector3.Distance(transform.position, Target.position);
        Vector3 norVec = transform.rotation * Vector3.forward * 5;
        Vector3 temVec = Target.position - transform.position;
        Debug.DrawLine(transform.position, norVec, Color.red);
        Debug.DrawLine(transform.position, Target.position, Color.green);
        float jiajiao = Mathf.Acos(Vector3.Dot(norVec.normalized, temVec.normalized)) * Mathf.Rad2Deg;//计算两个向量间的夹角
        if (distance < SkillDistance)
        {
            if (jiajiao <= SkillJiaodu * 0.5f)                                                                            
            {
                Debug.Log("在扇形范围内");
            }
        }
    }


    public bool UmbrellaAttact( Transform  attacker ,Transform attacked  ,float  angle, float radius)
    {
        
        Vector3 deltaA = attacked.position - attacker.position;
        
        float tmpAngle = Mathf.Acos(Vector3.Dot(deltaA.normalized, attacker.forward)) * Mathf.Rad2Deg;
        
        if (tmpAngle < angle * 0.5f && deltaA.magnitude < radius)
        {
            return true;
        }
        return false;
    }

12.private Nav…Agent//定义导航组件


private bool isStop;
void strat()
{
is stop = false;
添加Nav组件
}
void update()
{
   if(! is stop)
   {
       agent.isstopped = false;   //停止为false 指的是不停止
      //is stopped 是Nav组件中的一个部分 
   }
}

13.导航系统中加速度和速度的关系

当速度远大于加速度时会出现惯性,不能在当时位置停止操作
加速度为速度的2倍时可以原地停止

14.写出得到某一层的两种方式

① 1<<X 得到X层中的 1
② get mask

15.Input.GetAxisRow和Input.GetAxis的区别

0,1,-1

16.按钮脚本

get.co*****.OnClick.AddL*****(方法 void ());

17.indexoutofrange是什么错误

指的是超出索引了,首先排查看看有没有出界

18.写出摄像机跟随的代码

自身成目标
目标+差值 = new Pos
Late.V3.lerp(this pos,new pos,speed*time.deltatime)

19.什么是多态

多态:父类有虚方法 抽象类
子类重写父类虚方法,抽象类
父类,重写后的方法

20.场景动态移动

Unity学习笔记题目

21.数学函数

Unity学习笔记题目

22.使用GetRow

Unity学习笔记题目

23.书写规范

公有变量用大写
私有变量用小写

24.摧毁所有碰到的

Unity学习笔记题目

25.Equals相等对比

Unity学习笔记题目

26.声音的修改

Unity学习笔记题目

27.这是一个围绕自身旋转的脚本

Unity学习笔记题目