unity2D/3D实现绕某点弧形运动、钟摆的往复运动、自动对准

本文介绍如何在2D游戏中实现炮弹自动瞄准玩家手指点击位置的功能,包括计算角度并设置物体旋转。此外,还介绍了两种实现钟摆往复运动的方法,一种是使用Unity自带组件,另一种是通过代码计算旋转轴和角速度。
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));

/
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值