刮奖网站,网站布局用什么代码,论基层门户网站的建设,wordpress餐饮主题我们制作3D动作游戏的时候,常常主人公是一对多人进行攻击,或者敌人在角色前方一定范围内进行攻击. 我们怎么实现这种效果呢#xff1f; 1. 使用触发器(多体攻击)方便调试,可视化(推荐)2. 运用点乘和叉乘,判断敌人的角度和位置(单,多)一般3. 使用Physics的Physics.OverlapSpher…我们制作3D动作游戏的时候,常常主人公是一对多人进行攻击,或者敌人在角色前方一定范围内进行攻击. 我们怎么实现这种效果呢 1. 使用触发器(多体攻击)方便调试,可视化(推荐)2. 运用点乘和叉乘,判断敌人的角度和位置(单,多)一般3. 使用Physics的Physics.OverlapSphere(群体攻击)一般4. 使用Physics的LineCast(单体攻击)一般 我们先介绍下使用触发器如何实现敌人攻击, 当敌人进入攻击区域就加入一个集合当中, 退出攻击区域就从集合中删除. 玩家点击攻击对集合中的敌人进行伤害 核心代码实现 using UnityEngine;
using System.Collections;
using System.Collections.Generic;public class Player : MonoBehaviour {public float speed 2;public Dictionarystring,GameObject enemyList new Dictionarystring,GameObject();//敌人进入触发区域public void OnTriggerEnter(Collider obj){if (!enemyList.ContainsKey (obj.gameObject.name)) {enemyList.Add (obj.gameObject.name,obj.gameObject); }Debug.Log (敌人进入: obj.gameObject.name);Debug.Log (敌人的总个数: enemyList.Count);//打开头顶标示obj.gameObject.transform.FindChild (T).gameObject.SetActive(true);}//敌人退出触发区域public void OnTriggerExit(Collider obj){enemyList.Remove (obj.gameObject.name);Debug.Log (敌人退出: obj.gameObject.name);Debug.Log (敌人的总个数: enemyList.Count);obj.gameObject.transform.FindChild (T).gameObject.SetActive(false);}
} 效果图: 转载于:https://www.cnblogs.com/plateFace/p/4717777.html