unity学习笔记(持续更新)

这篇博客详细记录了Unity的学习过程,包括点选指向、物体旋转、键盘与鼠标事件处理、场景切换、物理与普通碰撞、物体动画控制、颜色改变等基础知识,并探讨了网络同步、防止射线穿透等问题,是Unity初学者的实用教程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

unity学习笔记(持续更新)

1.点哪指向哪
 if (Input.GetMouseButtonDown(0))
        {
            //相机向指定的物体发出射线,并返回
            Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);

            //射线可以跟collider组件的物体发生碰撞
            RaycastHit hit;//碰撞的信息


            //表示是否碰到东西
            if (Physics.Raycast(ray, out hit))
            {
                transform.LookAt(new Vector3(hit.point.x, transform.position.y, hit.point.z));
            }
        }
2.物体的旋转
         #region 方法一
        //设置炮台方向跟小球一个方向
        //transform.forward = ball.position - transform.position;
        #endregion

        #region 方法二
        // transform.LookAt(ball);
        #endregion

        //Vector3.Angle得到的夹角只会返回正夹角
        #region 方法二 改旋转
        //改旋转轴
        // Vector3 ballPos = ball.position - transform.position;
        // float angle = Vector3.Angle(ballPos,dir);
         Vector3 axis = Vector3.Cross(dir, ballPos);
        // dir = ballPos;
        // //dir = new Vector3(ballPos.x, 0, ballPos.z);

        // transform.Rotate(Vector3.up, angle);
        // transform.Rotate(axis, angle);

        //改旋转角度
        Vector3 ballPos = ball.position - transform.position;
        float angle = Vector3.Angle(ballPos,dir);
        Vector3 axis = Vector3.Cross(dir, ballPos);

        float result = Vector3.Dot(axis, Vector3.up);

        //根据传入值的符号返回,如果传入的值为负,则返回-1,否则返回1
        result = Mathf.Sign(result);
        dir = ballPos;
        angle *= result;
        transform.Rotate(Vector3.up, angle);
3.键盘事件

键盘输入
Input.GetKey 长安一个键不放,每帧判断一次
Input.GetKeyDown 按下某个键,只判断一次
Input.GetKeyUp 松开某个键,只判断一次

    if (Input.GetKeyUp(KeyCode.W))
        {
            Debug.Log("往前走");
        }

        if (Input.GetKeyDown(KeyCode.A))
        {
            transform.Translate(new Vec
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值