1.2D实现两物体的自动对准效果
在捕鱼游戏中,玩家的手指点击屏幕,炮弹自动打向手指的方向是怎样实现的?
首先来想一下,如果我们想要自动追踪玩家手指的运动我们需要知道,手指按下的位置与炮弹的位置相差的角度,那么这个角度要怎样计算呢?
首先,我们尝试着把手指与炮管放在同一个坐标系中,如下图

所以我们现在要算出来的应该是那个坐标呢?其实不管是算角x0玩家(角1)或者角玩家0x(角2)也好,算出其中一个然后用90-这个角度就可以了,我们现在以角1来举例,,这个角的角度tan角度 = (敌人坐标Y-玩家坐标Y)/(敌人坐标x-玩家坐标x) ,这样球出来的是一个tan数值,所以我们需要把这个角度转换成我们熟知的度数,也就是 float angle = Mathf.Atan(tan角度),求出了选装的角度,就可以来设置物体自身欧拉角,由于我们要选装的事XY轴构成的平面,我们要以z轴为旋转轴来选装,使物体绕着自身的坐标系旋转求出的角度,这样敌人就可以根据玩家的位置自动瞄准了,代码如下
using UnityEngine;
using System.Collections;
public class enemy : MonoBehaviour {
//存储角度值。
private float angle;
//玩家位置。
public Transform m_player;
//申请一个变量存储gun游戏物体的prefab。
public Transform gun;
void Start () {
}
void Update () {
//计算角度
angle =Mathf.Rad2Deg*Mathf.Atan ((transform.position.y - m_player.position.y) / (transform.position.x - m_player.position.x));
/

本文介绍如何在2D游戏中实现炮弹自动瞄准玩家手指点击位置的功能,包括计算角度并设置物体旋转。此外,还介绍了两种实现钟摆往复运动的方法,一种是使用Unity自带组件,另一种是通过代码计算旋转轴和角速度。
最低0.47元/天 解锁文章
3万+





