武器跟随旋转及对称[unity2d]

时间:2020-03-10 发布者: 访问量:3133

武器跟随旋转及对称


using System.Collections;
using System.Collections.Generic;
using UnityEngine;
 
public class Weapon : MonoBehaviour {
 
    private void FixedUpdate()
    {
        // 获取鼠标坐标并转换成世界坐标
        Vector3 m_mousePosition = Input.mousePosition;
        m_mousePosition = Camera.main.ScreenToWorldPoint(m_mousePosition);
        // 因为是2D,用不到z轴。使将z轴的值为0,这样鼠标的坐标就在(x,y)平面上了
        m_mousePosition.z = 0;
 
        // 武器朝向角度
        float m_weaponAngle = Vector2.Angle(m_mousePosition - this.transform.position, Vector2.up);
        if(transform.position.x < m_mousePosition.x)
        {
            m_weaponAngle = -m_weaponAngle;
        }
 
        //判断武器正反
        if(m_weaponAngle>0 && transform.localScale.x>0)
        {
            transform.localScale = new Vector3(-transform.localScale.x, transform.localScale.y, transform.localScale.z);
        }
        else if(m_weaponAngle < 0 && transform.localScale.x < 0)
        {
            transform.localScale = new Vector3(-transform.localScale.x, transform.localScale.y, transform.localScale.z);
        }
 
        // 变换最终角度
        transform.eulerAngles = new Vector3(0, 0, m_weaponAngle);
 
    }
}


发布于
  用户评论
    生活编程