• uinty实现玩家尾随鼠标位置平滑旋转角度


    首先我们要在场景中加入一个quad平面作为地板, 然后指定Layer为Floor,然后移除mesh renderer组件

    然后加入脚本

    脚本主要思想是从屏幕中心投出一条射线到地板, 然后获取相应坐标,然后转化成角度

    最后然角色平滑转到该角度就可以

    using UnityEngine;
    
    public class PlayerMovement : MonoBehaviour
    {
        public float turnSmoothing = 5f;
        public float rayLength = 100f;
    
        private int floorMask; 
    
        void Awake()
        {
            floorMask = LayerMask.GetMask("Floor");
        }
    
        void FixedUpdate()
        {
            TurningWithMouse();
        }
    
        void TurningWithMouse()
        {
            Ray camRay = Camera.main.ScreenPointToRay(Input.mousePosition);
            RaycastHit floorHit;
            if (Physics.Raycast(camRay, out floorHit, rayLength, floorMask))
            {
                Vector3 playerToMouse = floorHit.point - transform.position;
                playerToMouse.y = 0f;
                Quaternion targetRotation = Quaternion.LookRotation(playerToMouse, Vector3.up);
                Quaternion newRotation = Quaternion.Lerp(rigidbody.rotation, targetRotation, turnSmoothing * Time.deltaTime);
                rigidbody.MoveRotation(newRotation);
                
            }
        }
    }

  • 相关阅读:
    指定的架构无效。错误: CLR 类型到 EDM 类型的映射不明确
    win7IIS错误修改路径最全的
    如何设置textarea光标默认为第一行第一个字符
    我的Hexo网站
    Leetcode Round 4 记录
    几何编程题
    Leetcode Round 3 记录
    几何概型
    Roman Number & Integer
    Single Number
  • 原文地址:https://www.cnblogs.com/wzjhoutai/p/6752011.html
Copyright © 2020-2023  润新知