马上注册,加入CGJOY,让你轻松玩转CGJOY。
您需要 登录 才可以下载或查看,没有帐号?立即注册
×
在蛮牛教育上看了一个噩梦射手的教程,在游戏中有一个大模块就是射击类游戏,不管是第一人称还是第三人称,既然谈到射击就离不开射线碰撞和射线检测,在我的理解中,事件就是要被触发的,触发不是碰撞就是通知,如果做一个射击类的游戏的话,是否子弹打到别人就是靠碰撞触发的,在你的枪口设置一条射线,去与敌人的collider检测,或者让发出的子弹检测是否与敌人碰撞,子弹可以用对象池来管理(在蛮牛教育的论坛上我有说过对象池技术,可以去指点一下),今天就先不谈子弹的事,我来给向我这样的小白普及一下射线碰撞,希望大家看完都能做出一个简单的射击游戏demo~~
这段代码帮到你的枪口或者炮弹口,运行就可以看到效果了- using UnityEngine;
- using System.Collections;
- /**
- 蛮牛教育
- By__Robin
- */
- public class rayy : MonoBehaviour {
- // Use this for initialization
- void Start () {
-
- }
-
- // Update is called once per frame
- void Update () {
- //生成一道射线
- Ray ray = camera.ScreenPointToRay(Input.mousePosition);
- //射线碰撞
- RaycastHit hit;
- //打印这条射线
- Debug.DrawRay(ray.origin, ray.direction * 10, Color.yellow);
- //当按下鼠标左键的时候
- if (Input.GetMouseButtonDown(0))
- {
- //如果射线碰到物体的话
- if (Physics.Raycast(ray, out hit, 100))
- {
- //如果碰到物体的tag等于cu的时候
- if (hit.collider.tag == "cu")
- {
- Debug.Log("蛮牛教育/www.unitytrain.com.cn");
- }
- }
- }
- }
- }
复制代码
|