Unity3D编程学习 小知识_扇形攻击_2018Oct

当需要判断一物体是否位于当前物体前方扇形范围内时  运用距离差和角度差实现判断

//扇形攻击 实现类型_1
public bool UmbrellaAttact( Transform attacker ,Transform attacked ,float angle, float radius)
{

Vector3 deltaA = attacked.position - attacker.position;

float tmpAngle = Mathf.Acos(Vector3.Dot(deltaA.normalized, attacker.forward)) * Mathf.Rad2Deg;

if (tmpAngle < angle * 0.5f && deltaA.magnitude < radius)
   {
     return true;
   }
   return false;
}

//扇形攻击 实现类型_2
//距离差为半径 角度差为扇形角度的一半
Transform Target;

float _Dis = Vector3.Distance(Target.position, transform.position);
float _Angle = Vector3.Angle(Target.position-transform.position,transform.forward)

if (_Angle < x && _Dis < y)
{
   Debug.logFormat("在范围内");
}

原文地址:https://www.cnblogs.com/RainPaint/p/9829505.html

时间: 2024-10-11 00:58:27

Unity3D编程学习 小知识_扇形攻击_2018Oct的相关文章

Unity3D编程学习 小知识_人物移动导航_2018Oct

using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.AI; public class PlayerMove : MonoBehaviour { public GameObject myObj; void Start () { } void Update () { if (Input.GetMouseButtonUp (0)) { Ray myRay = Came

关于laravel一些学习小知识

laravel小知识: 第一:打印出最近执行的sql语句 这里先开启query日志 DB::connection()->enableQueryLog();之后赋值打印就可以了 $log = DB::getQueryLog();dd($log); //打印sql语句 这样就可以了 第二:关于Csrf防跨域问题的使用ajax表单传输的时候头部 请求部分 使用就是这样,这样就可以防止跨域访问  关于CSRF的值存在本地的session里面

windows编程一些小知识

1.Unicode字符.  以一个内建的数据类型wchar_t,以其来表示16位的Unicode(UTF-16)字符.  eg:wchar_t c=L'A'; 在WinNT.h中定义有: typedef char CHAR;//An 8-bit character        typedef wchar_t WCHAR ;//A 16-bit character

SQL小知识_长期总结

1. 左联接右联接区别 left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录inner join(等值连接) 只返回两个表中联结字段相等的行

学习逆向知识之用于游戏外挂的实现.第三讲,通过游戏外挂.分析红色警戒金钱基址.以及确定基址小技巧.

分析红色警戒金钱基址.以及确定基址小技巧. 一丶基址简介 通过第二讲.我们寻找植物大战僵尸无限阳光.学习到了相关的逆向知识.以及认识了基址.动态地址. 静态地址的区别.现在我们拿红色警戒这款单击游戏进行练手. PS: 主要目的是分析数据.学习逆向知识.并为之所用.并不是教大家如何制作外挂. 1.怎么确定我们寻找到的是基址? 有三种方法. CE中绿色表示基址,黑色表示内存地址.一般绿色的很有可能是基址(当然不一定是.不过大部分是) 退出游戏重新进入游戏.地址不会改变.其值的内容也不会改变. 搜索指

[Unity3D]做个小Demo学习Input.touches

[Unity3D]做个小Demo学习Input.touches 学不如做,下面用一个简单的Demo展示的Input.touches各项字段,有图有真相. 本项目已发布到Github,地址在(https://github.com/bitzhuwei/AndroidTouchDemo). 制作Demo 很简单,只需拉一个Text,然后添加一个脚本. 脚本如下. 1 using UnityEngine; 2 using System.Collections; 3 4 public class Disp

Java基础知识_毕向东_Java基础视频教程笔记(22-25 GUI 网络编程 正则)

22天-01-GUIGUI:Graphical User Interface 图形用户接口 Java为GUI提供的对象都存在java.Awt和javax.Swing两个包中CLI:Common line User Interface 命令行用户接口 Awt:Abstract Window ToolKit(抽象工具包),需要调用本地系统方法实现功能,属于重量级控件.Swing:在Awt的基础上,建立的一套图形界面系统,其中提供了更多的组件,而且完全由Java实现,增强了移植性,属于轻量级控件. 继

学习javascript总结下来的性能优化的小知识(二)

上面一篇文章大致介绍了一些javascript当中使用的一些小技巧,当下这篇文章继续介绍一下内存管理.松散耦合.性能方面的一些小知识.为避免错误应该注意的点 内存管理 1.循环引用 如果循环引用中包含DOM对象或者ActiveX对象,那么就会发生内存泄露.内存泄露的后果是在浏览器关闭前,即使是刷新页面,这部分内存不会被浏览器释放. 简单的循环引用: var el = document.getElementById('MyElement'); var func = function () { //

深入浅出安卓学习相关知识,如何从零学好移动开发

原文发表自我的个人主页,欢迎大家访问 http://purplesword.info/mobile-develop 由于近几年来互联网的飞速发展,安卓和iOS平台的大量普及推广,移动开发在当前是非常热门的一个方向. 有不少同学问我如何学习安卓,要学些什么,难不难学.之前一直没有想好应该怎么回答这个问题,只是简单的说安卓自身门槛不高,并不难学.因为我觉得准确回答一个类似这样的问题往往需要灵感.现在根据我的学习体验,做个大概的总结. 1.我为什么学安卓 我从刚开始接触安卓开发到现在也有两三年的时间了