unity3d怎么让玩家死亡_unity3d死亡 - CSDN
  • 1.第一步,首先新建一个unity3d项目,导入Standard Assets>ImageEffects 插件(灰屏效果有用到噢),格外还导入Demo用到的角色资源[Spider Green插件];    2.第二步,需要在场景中创建一个摄像机,...
    1.第一步,首先新建一个unity3d项目,导入Standard Assets>ImageEffects 插件(灰屏效果有用到噢),格外还导入Demo用到的角色资源[Spider Green插件];

        

        2.第二步,需要在场景中创建一个摄像机,并且摄像机附加ColorCorrectionCurves.cs 组件;

        


        3.第三步,把Spider Green中的SPIDER.Prefab拖到场景中,并且新加组件GameOver.cs;

          

        GameOver.cs代码如下:

         
    [C#] 
    ?
     
    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    using UnityStandardAssets.ImageEffects;
     
    public class GameOver : MonoBehaviour {
     
            private  Animation _curAnim;
            private ColorCorrectionCurves _colorCor;
     
            // Use this for initialization
            void Start () {
                    if (_curAnim == null)
                            _curAnim = GetComponent<Animation> ();
     
                    if (_colorCor == null)
                            _colorCor = FindObjectOfType<ColorCorrectionCurves> ();
            }
     
            void OnGUI()
            {
                    if (GUI.Button (new Rect (50, 100, 100, 50), "怪物重生")) {
                            SetAnimationPlay ("Attack",WrapMode.Loop);
                            SetColorCorrectionCurvesSaturation (1);
     
                    }
                    if (GUI.Button (new Rect (50, 200, 100, 50), "杀死怪物")) {
                            SetAnimationPlay ("Death",WrapMode.Once);
                            SetColorCorrectionCurvesSaturation (0);
                    }
            }
            /// <summary>
            /// 设定当前播放的动画
            /// </summary>
            /// <param name="animName">Animation name.</param>
            /// <param name="wrapL">Wrap l.</param>
            void SetAnimationPlay(string animName,WrapMode wrapL)
            {
                    if (_curAnim) {
                            _curAnim.Play (animName);
                            _curAnim.wrapMode = wrapL;
                    }
            }
            /// <summary>
            /// 设定当前摄像机的颜色度
            /// </summary>
            /// <param name="duration">Duration.</param>
            void SetColorCorrectionCurvesSaturation(int duration)
            {
                    if (_colorCor)
                            _colorCor.saturation = duration;
            }
    }
    m>
        void SetColorCorrectio

        4.最后,直接运行项目看效果啦!

           


           
    展开全文
  • 关于2D游戏中游戏玩家的出生、无敌、死亡方法可以通过如下一个小实例详细讲解我们小时候都玩过一款游戏——坦克大战所以此实例为如何实现玩家坦克的出生、无敌、以及死亡方法首先我们制作一个出生动画特效(此动画...

    关于2D游戏中游戏玩家的出生、无敌、死亡方法可以通过如下一个小实例详细讲解

    我们小时候都玩过一款游戏——坦克大战

    所以此实例为如何实现玩家坦克的出生、无敌、以及死亡方法


    首先我们制作一个出生动画特效

    (此动画特效本文章暂不做详细说明,如需了解请转至此文章学习了解

    链接:https://blog.csdn.net/SPU_HAO/article/details/80452118)


    新建脚本BORN1编写代码


    注意:这两个延时调用Destroy延时销毁出生特效的时间必须要大于等于Invoke延时调用born方法的时间,否则并不会显示坦克

    为什么?我们可以这么理解 


    born方法里设置的位置为 当前出生特效的位置

    而如果我们先执行Destroy销毁出生特效方法,再执行Invoke延时调用born方法,出生动画特效的位置已经被销毁了,born方法就找不到出生特效的位置,所以就不知道在哪里显示坦克

    将BORN1脚本挂在我们一开始制作的出生特效的下边,同时将做好的坦克预制体挂上


    运行  OK  我们可以看到我们挂的Player预制体在1f的出生动画特效后正确的显示出来(动图就不贴了)

    之后我们来实现一下游戏玩家也就是我们坦克的无敌方法

    首先添加一个引用 同时设定坦克的无敌时间以及无敌状态的判断

    (此处涉及到无敌的预制体 也就是一个保护膜的动画,同出生动画特效,不做详解)


    将方法放到类里


    然后是死亡方法,类似


    死亡方法很简单

    Destroy(gameObject);销毁玩家即可

    (如果有问题可以评论留言,看到后会回复)

    注:所有文章为本人学习过程中记录的问题以及解决方案,是本人的学习过程笔记,以用于以后的知识回顾,同时供像我一样的初学者方便,有时涉及一些学习过程中记录的资料以及素材,如有所侵犯,请联系本人删除或修改,谢谢!

    展开全文
  •  在前面的文章中,我们分别实现了一个自定义的角色控制器《[Unity3D]Unity3D游戏开发之仿仙剑奇侠传角色控制效果》和角色死亡的效果《[Unity3D]Unity3D游戏开发之仿仙剑奇侠传角色死亡效果实现》。今天我们继续来做...

              大家好,我是秦元培,欢迎大家关注我的博客,我的博客地址是blog.csdn.net/qinyuanpei

             在前面的文章中,我们分别实现了一个自定义的角色控制器《[Unity3D]Unity3D游戏开发之仿仙剑奇侠传角色控制效果》和角色死亡的效果《[Unity3D]Unity3D游戏开发之仿仙剑奇侠传角色死亡效果实现》。今天我们继续来做点和仙剑相关的东西,首先我们来看一副图:


             这幅图呢,是仙剑奇侠传的第一个迷宫场景——仙灵岛的莲花池。男主角李逍遥为替婶婶求药独闯仙灵岛,在经历了前面的小草妖战斗后,李逍遥就来到了 莲花池,这个迷宫的解法很简单,乘坐莲花池中的芦苇垫到不同的地方,然后用破天锤打碎五座阿修罗像,通往仙灵岛的通路就会被打开,就是在仙灵岛李逍遥邂逅了正在沐浴的赵灵儿,仙剑奇侠传的故事从此展开。好了,故事先说到这里,我们来看这里很重要的一个信息:李逍遥踩着芦苇垫到达不同的地方,然后用破天锤打碎石像开启机关。我们把最终要的东西提取出来的话就是我们可以踩着芦苇垫子到不同的地方去。好,我们今天就来实现一个简化的"仙灵岛"吧!那么怎么做呢?不知道大家还记不记得我在《[Unity3D]Unity3D游戏开发之基于ITween实现寻路功能》这篇文章里提到过的寻路方法,在这篇文章中,我们最终实现的效果是这样的:


            现在呢,让我们把莲花池里的构件做一下抽象:每一个 石柱可以看做是一个寻路节点,芦苇垫子可以看做是绑定了寻路组件的一个GameObject。唯一的区别就在于这里的芦苇垫子是需要我们的角色站在上面才能让它运动的,而我们在这篇文章里的游戏体是自己运动的。好,现在我们开始来实现这个功能吧。我们先创建如下图所示的场景:


           我们在水中布置了8个石柱,两个芦苇垫子,当游戏开始时,玩家控制角色走上芦苇垫子时,芦苇垫子将按照事先设定的路线,将角色送达最后一个石柱位置,此时,玩家可以控制角色到达对岸。当玩家再次踏上芦苇垫子时,芦苇垫子会将角色送回起点位置。当芦苇垫子处于移动状态中时,角色可以向四个方向旋转,活动范围仅限于芦苇垫子上。好,交待清楚了场景,我们下面来讲解原理:

           1、角色控制

                 采用在《[Unity3D]Unity3D游戏开发之仿仙剑奇侠传角色控制效果》中实现的角色控制器来控制角色的行为。

           2、寻路的实现

                 采用在《[Unity3D]Unity3D游戏开发之基于ITween实现寻路功能》中实现的寻路组件作为基础脚本,本节在此基础上做扩充和完善,保证角色可以自由的移动

           基于以上两个原理,我们下面来编写今天的脚本:

    using UnityEngine;
    using System.Collections;
    
    public class TransportScript : MonoBehaviour {
    	
    	//寻路组件节点
    	public Transform[] mPaths;
    	//芦苇垫传送器
    	private Transform mTransportor;
    	//被传送的角色
    	public Transform mTransportPlayer;
    	
    	//起点
    	Vector3 StartPoint=new Vector3(0F,0.5F,-13F);
    	//终点
    	Vector3 EndPoint=new Vector3(0F,0.5F,10F);
    	
    	//定义移动的方向类型:从起点到终点为0,从终点到起点为1
    	private int MoveType=0;
    	//定义移动状态的标志变量
    	private bool isMoving=false;
    	
    	//存储寻路组件设置的哈希表
    	private Hashtable args=new Hashtable();
    	
    	void Start () 
    	{
    		//获取传送器
    		mTransportor=this.transform;
    
    		//初始化寻路插件
    	    Hashtable args = new Hashtable();
    	    //设置路径的点
    		args.Add("path",mPaths);
    		//设置类型为线性,线性效果会好一些。
    		args.Add("easeType", iTween.EaseType.linear);
    		//设置寻路的速度
    		args.Add("speed",2.5f);
    	    //移动的整体时间。如果与speed共存那么优先speed
    		args.Add("time",10f);
    		//是否先从原始位置走到路径中第一个点的位置
    		args.Add("movetopath",true);
    		//延迟执行时间
    		args.Add("delay", 0.1f);
    		//移动的过程中面朝一个点
    		args.Add("looktarget",Vector3.up);
    		//三个循环类型 none loop pingPong (一般 循环 来回)	
    		args.Add("loopType", "pingPong");
    		//是否让模型始终面朝当面目标的方向
    		//如果你发现你的模型在寻路的时候时钟都是一个方向那么一定要打开这个
    		args.Add("orienttopath",true);
    	
    		iTween.MoveTo(gameObject,args);
    		iTween.Pause();
    	}
    	
    	void  Update()
    	{
    	   //如果当前处于停止状态则暂停动画
    	   if(isMoving==false)
    	   {
    		  iTween.Pause();
    	   }
    
    	   //从起点到终点的控制
    	   if(MoveType==0 && mTransportor.position!=EndPoint && isMoving==true)
    	   {
    		  //未到达终点则继续运动
    	      mTransportPlayer.position=mTransportor.position;
    	   }else if(MoveType==0 && mTransportor.position==EndPoint)
    	   {
    		  //到达终点则暂停运动
    		  iTween.Pause();
    		  isMoving=false;
    		  MoveType=1;
    	   }
    		
    	   //从终点到起点的控制
    	   if(MoveType==1 && mTransportor.position!=StartPoint && isMoving==true)
    	   {
    		  //未到达终点则继续运动
    	      mTransportPlayer.position=mTransportor.position;
    	   }else if(MoveType==1 && mTransportor.position==StartPoint)
    	   {
    		  //到达终点则暂停运动
    		  iTween.Pause();
    	      isMoving=false;
    		  MoveType=0;
    	   }
    	   
    	}
    	
    	//当角色走上芦苇垫的时候开始移动动画
    	void OnTriggerEnter(Collider mCollider)
    	{
    		if(mCollider.gameObject.name=="Samuzai")
    		{
    		   
    		   if(isMoving==false)
    		   {
    			  isMoving=true;
    	          iTween.Resume();
    		   }
    		}
        }
    }
    

            在上面的代码中,我们需要把握以下几点:

            1、在Start()方法中,我们主要完成的是寻路组件的初始化,这里我们将寻路动画设置为来回,然后通过Pause()、Resume()方法两个方法来控制动画的播放,因为iTween没有提供在Update()中实现动画播放的方法,iTween只支持部分方法在Update()方法中使用,具体的大家可以自己去了解iTween的API文档。

            2、我们主要通过isMoving标志来标记当前的状态,使用OnTriggerEnter()方法来判断角色是否走上了芦苇垫子,当角色走上芦苇垫子上时,就开始播放寻路动画。当到达起点/终点时,寻路动画即停止。当角色再次走上芦苇垫子时,再次开始寻路动画。

           3、我们再Update()方法中通过改变角色的位置实现了角色和芦苇垫子的同步移动,当到达起点/终点时,寻路动画即停止,直到下一次被触发。

           4、触发与碰撞的区别在于触发不会产生力的作用,可以通过OnTriggerEnter/OnTriggerStay/OnTriggerExit方法分别监听触发开始、触发中、触发结束。要使用Trigger需要勾选碰撞器的isTrigger选项。具体的区别我会在后面的文章中为大家做讲解。

          

           这篇文章中用到的东西就是这么多,主要的难点是寻路动画的控制,由于官方没有提供有关的方法,所以我们只能采用Pause()、Resume()方法来控制角色的动画。最后我们来一起看看实现的效果吧,是不是有仙灵到的感觉呢?呵呵

          



          最后奉上几个民间的同人游戏演示:

          1、UDK制作的仙剑一3D版仙灵岛场景

          2、U3D制作的仙剑五前传同人演示1

                U3D制作的仙剑五前传同人演示2

          每次看到这里,内心都会充满一种希望,希望在有生之年玩到更多的仙剑,踏歌长行、梦想永续!继续努力吧!  

          喜欢我的博客请记住我的名字:秦元培,我的博客地址是:blog.csdn.net/qinyuanpei

          转载请注明出处,本文作者:秦元培,本文出处:http://blog.csdn.net/qinyuanpei/article/details/24038749


    展开全文
  • Unity3D实现的角色攻击、移动待机死亡以及怪物自动寻路AI等(直接Unity运行)
  • 一、引言 【Unity3D基础2-1】Unity3D从业介绍已更新完毕 这篇介绍Unity3D引擎 二、

    一、引言

    【Unity3D基础2-1】Unity3D从业介绍已更新完毕
    这篇介绍Unity3D引擎

    二、简述

    Unity3D是由Unity Technologies开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。Unity类似于Director,Blender game engine, Virtools 或 Torque Game Builder等利用交互的图型化开发环境为首要方式的软件。其编辑器可运行在Windows、Linux(目前仅支持Ubuntu和Centos发行版)、Mac OS X下,可发布游戏至Windows、Mac、Wii、iPhone、WebGL(需要HTML5)、Windows phone 8和Android平台。也可以利用Unity web player插件发布网页游戏,支持Mac和Windows的网页浏览。它的网页播放器也被Mac 所支持。

    2020年5月9日,Unity宣布收购加拿大技术服务公司Finger Food,拓展工业应用版图。

    分类: 游戏引擎、游戏开发工具
    编程语言: C#(JS以及Boo已被放弃支持)

    三、软件版本介绍

    Pro专业版和Plus加强版
    在这里插入图片描述
    个人免费版:
    在这里插入图片描述

    四、相关游戏

    在这里插入图片描述

    网页游戏

    2012年 坦克英雄(网页游戏)
    2012年 皇牌海战
    2012年新仙剑Online
    2012年 蒸汽之城
    2012年 绝代双骄
    2012年Touch
    2012年 纵横无双
    2012年 将魂三国
    2012年 天神传
    2012年QQ乐团
    2012年 北欧英灵传
    星之战记
    骑士的远征(已停止运营)
    萌战记
    推倒Online
    格子RPG
    图腾王
    争锋OnLine
    喷喷战机(已停止运营)
    魔偶给我冲
    诛仙
    木乃伊OL (The Mummy Online)
    魔晶星球
    将神
    天宠岛
    Kartuga
    极限摩托车2 (Trial Xtreme 2)
    枪战世界(OffensiveCombat)
    梦幻国度2
    UberStrike
    Kartuga

    客户端游戏

    Robocraft
    Bad Piggies

    手机游戏

    使命召唤手游(Call of Duty Mobile)
    命运冠位指定 (Fate/Grand Order)
    择天记
    王者荣耀
    失落帝国
    地牢女王 [5]
    MemoLine!
    炉石传说
    酷酷爱魔兽
    捣蛋猪(Bad Piggies)
    神庙逃亡2(Temple Run 2)
    武士2: 复仇
    亡灵杀手:夏侯惇
    蛮王记
    极限摩托车2 (Trial Xtreme 2)
    神庙逃亡:勇敢传说(Temple Run:Brave)
    Bladeslinger
    火车危机(Train Crisis)
    血色屋顶(Blood Roofs)
    猎鹿人(Deer Hunter Reloaded)
    果冻防御(Jelly Defense)
    ChopChop Tennis
    9号计划之地下雅利安
    暗影之枪:死亡禁地 (Shadowgun: DeadZone)
    Komodo Crunchtime:Ultimate Sup
    The Drowning
    The Room Pocket
    三国之杀场
    王者之剑
    Rochard
    Momonga弹珠冒险记
    Tap Sonic Star
    死亡扳机 (DEAD TRIGGER)
    对峙2(Standoff2)
    公路战士(Road Warrior)
    极速飞盘 Frisbee Forever
    口袋RPG (Pocket RPG)
    机器人大战 (Roboto)
    绝命武装(Bravo Force:Last Stand)
    阿尔龙:剑影 ( Aralon:Sword and Shad)
    街头摔跤 ( Street Wrestler )
    缪斯(M.U.S.E.)
    疯狂的公牛(Bull Dozer)
    year walk
    Jack Lumber
    神庙逃亡:魔境仙踪(Temple Run Oz
    血之荣耀:传奇 ( Blood & Glory 2 : Le)
    绳索救援 ( Rope Rescue )
    子弹时间(Bullet Time)
    松饼骑士(Muffin Knight)
    狂奔弗雷德 (Running Fred)
    荒谬剧场 (Theatre of the Absurd)
    纸片怪兽
    Create! Pottery
    愚蠢的僵尸 (Stupid Zombies)
    Bag It!
    攻城大战 (Aiegecraft)
    飙车战警 (Smash Cops)
    AVP: Evolution
    崩坏学园(The end of school)
    天天飞车
    Alien Hive
    Darklings
    全民炫舞
    口袋四驱车
    心灵颤音
    OXkong
    纪念碑谷(Monument Valley)
    Duty Driver Bus(FULL)(公交司机)
    Duty Driver Taxi(FULL)(出租车司机)
    Duty Driver Firetruck(FULL)(救火车司机)
    Fried Aircraft(炸飞机)
    音速少女队
    崩坏3
    各种3D模拟器
    江湖X:汉家江湖

    单机游戏

    奇异人生:风暴前夕
    巫师之昆特牌:王权的陨落
    七日杀
    捣蛋猪(Bad Piggies)
    轩辕剑六
    御天降
    凡人修仙传单机版
    雨血前传:蜃楼
    外科模拟2013
    新剑侠传奇
    轩辕剑外传:穹之扉
    Sc竞技飞车
    永恒之柱
    围攻(Besiege)
    仙剑奇侠传6
    侠客风云传
    河洛群侠传
    天命奇御
    金庸群侠传Ⅹ
    病娇模拟器
    坎巴拉太空计划
    The Long Dark(“漫漫长夜”又名“无尽之夜”)
    VR女友等I社游戏
    Cuphead(茶杯头)
    A Slower Speed of Light [6]
    Ori and the Blind Forest(奥里与迷失森林)
    众生
    森林
    深海迷航(美丽水世界)
    初体计划
    卡车人生
    侠隐阁

    五、培训和认证

    认证考试

    Unity Certified User应用能力认证
    考试时间:1小时(50题)
      适合多媒体专业,3D专业,游戏专业,美术专业的学生及Unity初学者。证明您已经拥有Unity引擎的基础知识。
    Unity Certified Professional专业能力认证
    考试时间:1小时(50题)
      熟悉C#或JavaScript的开发者,证明您已经拥有Unity引擎的专业知识,能够依照业界的开发需求来制作专案。

    报名流程

    立即填写报名信息
    收到信息后,会第一时间联系通知
    报名交费
    通知并发放准考证

    考试地点

    北京、上海、香港、杭州、南京、苏州、广州、深圳、成都、台北、新竹、台南、高雄

    展开全文
  •  感谢对我的支持,在上一篇文章《 [Unity3D]Unity3D游戏开发之仿仙剑奇侠传角色控制效果》中,我们通过自定义脚本实现了在RPG游戏中的角色控制器,当然这个角色器目前还不完善,为什么这么说呢,我在后面的一篇...
  • Unity3D常见面试题

    2017-08-11 20:20:00
    Unity3D常见面试题
  • 玩家死亡,屏幕灰白效果实现 一个RGB颜色的亮度和各个分量之间的关系的公式为:GrayValue = 0.3 * R + 0.59*G + 0.11 *B sampler2D Texture0;float4 ps_main( float2 texCoord : TEXCOORD0 ) : COLOR{...
  • 大家晚上好,我是秦元培,欢迎大家关注我的博客,我的博客地址是blog.csdn.net/...所以,今天的博客的主题就是《Unity3D游戏开发之跑酷游戏项目讲解》。从博主自身来考虑这件事情,当你选择做自己热爱的事情的时
  • -接上篇:unity3d学习(一)制作第一人称射击-玩家的视口和移动让玩家能够射击 第一步:通过射线发射 因为我们是第一人称射击,我们可以使用unity提供的ScreenPointToRay(),创建一个从摄影机开始发射的射线。一旦有...
  • 这段代码是在Unity蛮牛给人解答的时候写的,第一次写Shader,Unity官方的语法还没来得及完全过一遍,比较仓促,还好效果实现了! 笔记:Alpha Blending则是一种中庸的方式,它使用当前fragment的alpha作为混合因子...
  • Unity3d:https://unity3d.com/cn 参考百度百科:...Unity3D是由Unity Technologies开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容...
  • 在RPG游戏中,当角色HP降低到0时,角色即进入了死亡状态,此时角色将倒在地上。在过去的游戏设计中,角色倒...在Unity3D中,系统为我们提供了布娃娃组件,下面请大家和我一起来学习怎样使用布娃娃来模拟角色死亡的状态
  • Unity3D坦克大战

    2014-10-19 16:14:53
    因为要得找工作了,不得不写些文章HR更多的了解到我,同时能帮到别的同学也是好的。因为接触Unity时间不是特别久,所以这里先帖出早期开发的C#游戏,然后再帖Unity游戏。 另外提醒,我的所有作品都是自己开发的...
  • Unity3D】回合制游戏

    2017-08-17 23:23:56
    那么在Unity3D中怎么实现呢?下面用一个比较简单Unity3D的一对一回合制游戏来说明这个问题。其实也不难,关键是理清各个处理关系。 如下图所示,绿色代表玩家操控的主角,蓝色代表遇到的敌人,分别赋予大家100HP,...
  • 引言:小生今日分享的是双人坦克大战,这也是Unity的官方案例。 开发版本:unity 5.3.5f 适合人群:初学Unity者 源文件链接请见文末! 开启学习之旅吧!   玩法:双方分别用WSAD键或上下左右键来控制两个坦克...
  • p8怪物输出伤害 Add component - Sphere Collider勾选IsTrigger(触发) EnemyAttack脚本 using System.Collections; using System.Collections.Generic;...public class EnemyAttack : MonoBehaviour ...
  • 制作敌人简单AI和发射火球写在前面: - 学习课本:Unity5实战 ...-unity3d学习(二)制作第一人称射击-玩家的视口和移动简单的敌人自动移动(AI)和死亡 第一步:创建一个新脚本 Wandering 给敌人添加Wandering 脚本
  • 为了在unity3d中实现这个特效,百度了下相关写法,发现方法很多~~~,找来找去,找到个简单粗暴地,啥都不需要,通过Camera Viewpoint实现 一个脚本拖动到Camera上就可以了,略微修改了一点点,share一下,下面是代码...
  • Unity3D命令手册

    2019-05-06 10:56:54
    Unity3D命令手册 这本书 主要对Unity3D的所有菜单与参数进行了翻译 并逐个讲解 来帮助大家初步的认识Unity3D的每个命令的作用 Unity3D下分8个菜单栏 (翻译的不一定准) 分别是File(文件)Edit(编辑)Assets(资源...
1 2 3 4 5 ... 20
收藏数 631
精华内容 252
关键字:

unity3d怎么让玩家死亡