[Unity]2D&3D物体指向indicator鼠标,技能指示器 基础
发布日期:2021-05-09 11:51:56 浏览次数:24 分类:精选文章

本文共 5483 字,大约阅读时间需要 18 分钟。

2D���������������������������������������

���������������������������������������������2D������������������������������������������������������������������������������������������������������������������������������������������������������

������������

������������������������2D������������������������������������������������������������������������������������������������������������Unity���CharacterMovement���������������������������������������������������������������������������������������������������������������������������������������������������������

������������

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class RotateArrowToward : MonoBehaviour
{
public float speed = 5f;
private Vector2 mousePosition;
private void Update()
{
// ���������������������������������
Vector2 mouseScreenPosition = Input.mousePosition;
// ���������������������������������������������������
Vector2 mouseWorldPosition = Camera.main.ScreenToWorldPoint(mouseScreenPosition);
// ���������������
Vector2 direction = mouseWorldPosition - transform.position;
float angle = Mathf.Atan2(direction.y, direction.x) * Mathf.Rad2Deg;
Quaternion rotation = Quaternion.AngleAxis(angle, Vector3.forward);
// ���������������������������
transform.rotation = Quaternion.Slerp(transform.rotation, rotation, speed * Time.deltaTime);
}
}

���������������

  • ���������������������Input.mousePosition������������������������������������������������������������
  • ������������������Camera.main.ScreenToWorldPoint������������������������������������������������������������������������������������������������������������������
  • ������������������������������������������������������������������������������������
  • ���������������������������Mathf.Atan2���������������������������������Y������X������������������������������������������������������������
  • ���������������������������Quaternion.Slerp������������������������������������������������������

������������

  • ���������������������������������Inspector���������������������������������Sprite���������
  • ������Pivot���������������������Transform Components > Anchor������Pivot������������������������������������������������������������������������������������
  • ���������������������������������speed���������������������������������������
  • ������������������������������������������������������������������������������������������������������������
  • ������������

    • ���������������������������������Pivot���������������������������������������������������������������������������
    • ���������������������������speed���������������������������������������������
    • ���������������������������Pivot���������������������������������������������������������

    ������������������������������������������2D���������������������������������������������������������������������������������������


    3D���������������������������

    ���3D���������������������������������������������������������������������������������������������������������������������������������������������������������

    ������������

    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    public class CharacterMovement : MonoBehaviour
    {
    public float speed = 4;
    Rigidbody rigidBody;
    Vector3 lookPos;
    private void Start()
    {
    rigidBody = GetComponent
    ();
    if (rigidBody)
    {
    rigidBody.enabled = true;
    }
    }
    private void Update()
    {
    // ���������������������������
    Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
    RaycastHit hit;
    // ������������������������������������������
    if (Physics.Raycast(ray, out hit, 100))
    {
    lookPos = hit.point;
    }
    // ���������������������������������
    Vector3 lookDir = lookPos - transform.position;
    lookDir.y = 0; // ���������������������������������������������������
    // ���������������������������
    transform.LookAt(transform.position + lookDir, Vector3.up);
    }
    private void FixedUpdate()
    {
    float horizontal = Input.GetAxis("Horizontal");
    float vertical = Input.GetAxis("Vertical");
    Vector3 movement = new Vector3(horizontal, 0, vertical);
    rigidBody.AddForce(movement * speed / Time.deltaTime);
    }
    }

    ������������

    • ������������������������CharacterMovement���������������������������������
    • ������������������������������������Rigidbody������������������������������
    • ���������������������ScreenPointToRay������������������������3D���������
    • ������������������������������������������������������������������������������hit������
    • ������������������������������������������������������Y���������������������������������������
    • ������������������������������������������������������������������������������������������������������������

    ������������

  • ������Rigidbody������Rigidbody������������������������������������������������������������������������������������
  • ������������������CharacterMovement���������������������������������
  • ���������������������������������speed������������������������������������
  • ������������������������������������������������������������������������������������������������
  • ������������������������������������3D���������������������������������������������������������������������������������������������������������������������������������������

    上一篇:[Unity]箭头2D图片精灵的Pivot锚点怎么设置
    下一篇:[Unity]旋转

    发表评论

    最新留言

    初次前来,多多关照!
    [***.217.46.12]2025年04月02日 04时55分51秒