2017-05-13 11:29:35 q510264505 阅读数 215
  • 丑小鸭历险记——趣味玩转unity2d游戏开发(上)

    故事简介 丑小鸭生来就很丑,谁都不喜欢它,从小被其他鸭子欺负。它无奈离开了妈妈,拿上一把猎枪,独自流浪,风餐露宿。每当遇到各种怪物而子弹不够用时,丑小鸭只能通过自己的血肉之躯踩死怪物。路上只能靠水果和蔬菜维持体力,无聊时也能抬头数星星。翻山越岭,逢水架桥,勇闯空中栈道和独木桥,踩过蹦床,躲过电锯,钻过加农炮,坐过火箭,穿过枪林弹雨,在极度艰苦的条件下大战终极BOSS。最终,丑小鸭占领了一座豪华城堡,里面住着它心仪的白富美(其实也是个丑小鸭),它在夜色降临之前,轻轻关上门,打开灯,结束了流浪生涯,此时天空绽放绚烂的烟花,拉开幸福生活的序幕...... 这个故事告诉我们:只要你肯奋斗,我命由我不由天 时长 课程分为上下两部,共64节课(21.1小时) 其中,上部29节课(8.5小时),下部35节课(12.6小时) 课程特色 * 对初学者友好,初次遇到新技术会详细讲解 * 全程直播,坚决不在直播外偷偷修改 * 展示所有细节,手把手教学 * 游戏元素完整丰富,共3张地图18个关卡 * 代码和文档开源,github托管地址 https://github.com/sailings/DuckAdventure * 完善的售后支持 涵盖实战中常用的知识点 * Physics,刚体,碰撞,弹簧体 * Mecanim,动画状态机,动画融合,动画层 * Animation,动画编辑与录制 * 单例模式 * 协程 * Dotween * 粒子特效 * 射线检测 * 键盘和移动端输入 * Cinemachine相机跟随,Confiner扩展 * UGUI常见控件,HUD * 屏幕自适应 * 地图与关卡解锁 * 关卡滑动 * 背景滚动 * 子弹轨迹计算 * 音效管理 * 场景编辑 * 数据及上下文存储 大纲 丑小鸭历险记——趣味玩转unity2d游戏开发(上)   1.游戏简介及演示 2.怎样画一匹骏马 3.千里之行始于足下 4.修复连续跳跃以及Jump动画融合和播放 5.匍匐前进 6.星星碰撞以及游戏管理中增加积分 7.吃水果蔬菜、游戏结束、制作水果蔬菜预设 8.相机跟随、口水怪动画 9.踩死怪物 10.喷火怪 11.钢管怪 12.飞翔的小鸟怪 13.食人鱼 14.从天而降怪 15.落水逻辑 16.空中栈道和独木桥 17.蹦床和电锯 18.加农炮 19.强力磁铁 20.坐着火箭旅行 21.漫天飞舞的电锯 22.枪林弹雨 23.丑小鸭的反击 24.定点保存 25.Boss动画、移动、释放怪物、生命值管理 26.Boss无敌以及特效 27.Boss血条以及坠机冒烟 28.Boss射击以及子弹轨道计算 29.梦幻城堡

    321 人正在学习 去看看 洪青霞

比UGUI更方便的血条控制,以及跟随人物或者敌人

即使在3D游戏中渐远也可以用代码控制血条大小

直接把图片拖放为需要移动角色(敌人)的子物体下

再把精灵图片的中心的选择如下图:


Pivot中x点为0,即图片的最左边,根据需求随意更改


控制Transform中Scale中x的大小,即可显示多少

如果需要显示文字,也可以用数字的图片使用精灵领10个数字为预制物体

在改血条下子物体中生成动态的数字即可

2015-01-15 01:11:23 caoboya 阅读数 3434
  • 丑小鸭历险记——趣味玩转unity2d游戏开发(上)

    故事简介 丑小鸭生来就很丑,谁都不喜欢它,从小被其他鸭子欺负。它无奈离开了妈妈,拿上一把猎枪,独自流浪,风餐露宿。每当遇到各种怪物而子弹不够用时,丑小鸭只能通过自己的血肉之躯踩死怪物。路上只能靠水果和蔬菜维持体力,无聊时也能抬头数星星。翻山越岭,逢水架桥,勇闯空中栈道和独木桥,踩过蹦床,躲过电锯,钻过加农炮,坐过火箭,穿过枪林弹雨,在极度艰苦的条件下大战终极BOSS。最终,丑小鸭占领了一座豪华城堡,里面住着它心仪的白富美(其实也是个丑小鸭),它在夜色降临之前,轻轻关上门,打开灯,结束了流浪生涯,此时天空绽放绚烂的烟花,拉开幸福生活的序幕...... 这个故事告诉我们:只要你肯奋斗,我命由我不由天 时长 课程分为上下两部,共64节课(21.1小时) 其中,上部29节课(8.5小时),下部35节课(12.6小时) 课程特色 * 对初学者友好,初次遇到新技术会详细讲解 * 全程直播,坚决不在直播外偷偷修改 * 展示所有细节,手把手教学 * 游戏元素完整丰富,共3张地图18个关卡 * 代码和文档开源,github托管地址 https://github.com/sailings/DuckAdventure * 完善的售后支持 涵盖实战中常用的知识点 * Physics,刚体,碰撞,弹簧体 * Mecanim,动画状态机,动画融合,动画层 * Animation,动画编辑与录制 * 单例模式 * 协程 * Dotween * 粒子特效 * 射线检测 * 键盘和移动端输入 * Cinemachine相机跟随,Confiner扩展 * UGUI常见控件,HUD * 屏幕自适应 * 地图与关卡解锁 * 关卡滑动 * 背景滚动 * 子弹轨迹计算 * 音效管理 * 场景编辑 * 数据及上下文存储 大纲 丑小鸭历险记——趣味玩转unity2d游戏开发(上)   1.游戏简介及演示 2.怎样画一匹骏马 3.千里之行始于足下 4.修复连续跳跃以及Jump动画融合和播放 5.匍匐前进 6.星星碰撞以及游戏管理中增加积分 7.吃水果蔬菜、游戏结束、制作水果蔬菜预设 8.相机跟随、口水怪动画 9.踩死怪物 10.喷火怪 11.钢管怪 12.飞翔的小鸟怪 13.食人鱼 14.从天而降怪 15.落水逻辑 16.空中栈道和独木桥 17.蹦床和电锯 18.加农炮 19.强力磁铁 20.坐着火箭旅行 21.漫天飞舞的电锯 22.枪林弹雨 23.丑小鸭的反击 24.定点保存 25.Boss动画、移动、释放怪物、生命值管理 26.Boss无敌以及特效 27.Boss血条以及坠机冒烟 28.Boss射击以及子弹轨道计算 29.梦幻城堡

    321 人正在学习 去看看 洪青霞

       欢迎来到unity学习unity培训unity企业培训教育专区,这里有很多U3D资源U3D培训视频U3D教程U3D常见问题U3D项目源码,我们致力于打造业内unity3d培训、学习第一品牌。

 

       今天做项目用到了血条及其血条的增加。

       一、血条。  

       1、建立血条要建立两个Texture2D分别作为红色血条和掉血之后的血条槽。

       public Texture2D Blood_Red;

       public Texture2D Blood_Black;

       2、设置血条为100,做到血条平均分成100份。

       public int HP=100;

       int Blood_Width=Blood_Red.Width*Hero.HP/100;

       3、设置血条的位置和一些必要的文字,而且在血条上显示血量。

       GUI.Label(new Rect(5,10,40,30),"血量:");

       GUI.DrawTexture(new Rect(50,10,128,30),Blood_Black);

       GUI.DrawTexture(new Rect(50,10,Blood_Width,30),Blood_Red);

       GUI.Label(new Rect(100,10,50,25),HP+" ");

       二、血条增加。

       1、打死怪物以后血条增加10点,首先要判断怪物死亡后血量增加,然后判断什么时候血量增加(血量大于0,小于等于90的时候,血量增加10点,血量大于90小于等于100的时候,血量变成100),其他则为不增加血量。

       if(mouseHP==0){  //半段怪物血量等于0,即怪物被打死。

           if(HP<=90&&HP>0){HP+=10;}

           else if(HP>90&&HP<=100){HP=100;}

       }

2014-12-29 15:18:20 CrazysPopcorn_qian 阅读数 602
  • 丑小鸭历险记——趣味玩转unity2d游戏开发(上)

    故事简介 丑小鸭生来就很丑,谁都不喜欢它,从小被其他鸭子欺负。它无奈离开了妈妈,拿上一把猎枪,独自流浪,风餐露宿。每当遇到各种怪物而子弹不够用时,丑小鸭只能通过自己的血肉之躯踩死怪物。路上只能靠水果和蔬菜维持体力,无聊时也能抬头数星星。翻山越岭,逢水架桥,勇闯空中栈道和独木桥,踩过蹦床,躲过电锯,钻过加农炮,坐过火箭,穿过枪林弹雨,在极度艰苦的条件下大战终极BOSS。最终,丑小鸭占领了一座豪华城堡,里面住着它心仪的白富美(其实也是个丑小鸭),它在夜色降临之前,轻轻关上门,打开灯,结束了流浪生涯,此时天空绽放绚烂的烟花,拉开幸福生活的序幕...... 这个故事告诉我们:只要你肯奋斗,我命由我不由天 时长 课程分为上下两部,共64节课(21.1小时) 其中,上部29节课(8.5小时),下部35节课(12.6小时) 课程特色 * 对初学者友好,初次遇到新技术会详细讲解 * 全程直播,坚决不在直播外偷偷修改 * 展示所有细节,手把手教学 * 游戏元素完整丰富,共3张地图18个关卡 * 代码和文档开源,github托管地址 https://github.com/sailings/DuckAdventure * 完善的售后支持 涵盖实战中常用的知识点 * Physics,刚体,碰撞,弹簧体 * Mecanim,动画状态机,动画融合,动画层 * Animation,动画编辑与录制 * 单例模式 * 协程 * Dotween * 粒子特效 * 射线检测 * 键盘和移动端输入 * Cinemachine相机跟随,Confiner扩展 * UGUI常见控件,HUD * 屏幕自适应 * 地图与关卡解锁 * 关卡滑动 * 背景滚动 * 子弹轨迹计算 * 音效管理 * 场景编辑 * 数据及上下文存储 大纲 丑小鸭历险记——趣味玩转unity2d游戏开发(上)   1.游戏简介及演示 2.怎样画一匹骏马 3.千里之行始于足下 4.修复连续跳跃以及Jump动画融合和播放 5.匍匐前进 6.星星碰撞以及游戏管理中增加积分 7.吃水果蔬菜、游戏结束、制作水果蔬菜预设 8.相机跟随、口水怪动画 9.踩死怪物 10.喷火怪 11.钢管怪 12.飞翔的小鸟怪 13.食人鱼 14.从天而降怪 15.落水逻辑 16.空中栈道和独木桥 17.蹦床和电锯 18.加农炮 19.强力磁铁 20.坐着火箭旅行 21.漫天飞舞的电锯 22.枪林弹雨 23.丑小鸭的反击 24.定点保存 25.Boss动画、移动、释放怪物、生命值管理 26.Boss无敌以及特效 27.Boss血条以及坠机冒烟 28.Boss射击以及子弹轨道计算 29.梦幻城堡

    321 人正在学习 去看看 洪青霞
public,一张图片;

然后使用GUI.DrawTexture函数调用一张图片
接着因为是自动update的原因。只要在funtion里面加入判断条件。然后加血,减血。
我只说思路,无代码共享;

Unity3d
2019-11-20 17:37:03 gao15012211596 阅读数 17
  • 丑小鸭历险记——趣味玩转unity2d游戏开发(上)

    故事简介 丑小鸭生来就很丑,谁都不喜欢它,从小被其他鸭子欺负。它无奈离开了妈妈,拿上一把猎枪,独自流浪,风餐露宿。每当遇到各种怪物而子弹不够用时,丑小鸭只能通过自己的血肉之躯踩死怪物。路上只能靠水果和蔬菜维持体力,无聊时也能抬头数星星。翻山越岭,逢水架桥,勇闯空中栈道和独木桥,踩过蹦床,躲过电锯,钻过加农炮,坐过火箭,穿过枪林弹雨,在极度艰苦的条件下大战终极BOSS。最终,丑小鸭占领了一座豪华城堡,里面住着它心仪的白富美(其实也是个丑小鸭),它在夜色降临之前,轻轻关上门,打开灯,结束了流浪生涯,此时天空绽放绚烂的烟花,拉开幸福生活的序幕...... 这个故事告诉我们:只要你肯奋斗,我命由我不由天 时长 课程分为上下两部,共64节课(21.1小时) 其中,上部29节课(8.5小时),下部35节课(12.6小时) 课程特色 * 对初学者友好,初次遇到新技术会详细讲解 * 全程直播,坚决不在直播外偷偷修改 * 展示所有细节,手把手教学 * 游戏元素完整丰富,共3张地图18个关卡 * 代码和文档开源,github托管地址 https://github.com/sailings/DuckAdventure * 完善的售后支持 涵盖实战中常用的知识点 * Physics,刚体,碰撞,弹簧体 * Mecanim,动画状态机,动画融合,动画层 * Animation,动画编辑与录制 * 单例模式 * 协程 * Dotween * 粒子特效 * 射线检测 * 键盘和移动端输入 * Cinemachine相机跟随,Confiner扩展 * UGUI常见控件,HUD * 屏幕自适应 * 地图与关卡解锁 * 关卡滑动 * 背景滚动 * 子弹轨迹计算 * 音效管理 * 场景编辑 * 数据及上下文存储 大纲 丑小鸭历险记——趣味玩转unity2d游戏开发(上)   1.游戏简介及演示 2.怎样画一匹骏马 3.千里之行始于足下 4.修复连续跳跃以及Jump动画融合和播放 5.匍匐前进 6.星星碰撞以及游戏管理中增加积分 7.吃水果蔬菜、游戏结束、制作水果蔬菜预设 8.相机跟随、口水怪动画 9.踩死怪物 10.喷火怪 11.钢管怪 12.飞翔的小鸟怪 13.食人鱼 14.从天而降怪 15.落水逻辑 16.空中栈道和独木桥 17.蹦床和电锯 18.加农炮 19.强力磁铁 20.坐着火箭旅行 21.漫天飞舞的电锯 22.枪林弹雨 23.丑小鸭的反击 24.定点保存 25.Boss动画、移动、释放怪物、生命值管理 26.Boss无敌以及特效 27.Boss血条以及坠机冒烟 28.Boss射击以及子弹轨道计算 29.梦幻城堡

    321 人正在学习 去看看 洪青霞

Unity3d

血条(Health Bar)的预制设计。具体要求如下:

  • 分别使用 IMGUI 和 UGUI 实现
  • 使用 UGUI,血条是游戏对象的一个子元素,任何时候需要面对主摄像机
  • 分析两种实现的优缺点
  • 给出预制的使用方法

IMGUI实现

IMGUI,即时模式图形界面,它是代码驱动的UI系统,没有图形化设计界面,只能在OnGUI阶段用GUI系列的类绘制各种UI元素,因此UI元素只能浮在游戏界面上。

IMGUI主要应用于以下场景:

  • 在游戏中创建调试显示工具
  • 为脚本组件创建自定义的 Inspector 面板
  • 创建新的编辑器窗口和工具来扩展 Unity 环境

IMGUI系统通常不打算用于玩家可能使用并与之交互的普通游戏内用户界面。

步骤:

  1. 创建空对象,命名为HealthSlider。

  2. 创建脚本IMGUI.cs,主要的思路是在界面上生成两个按钮,分别为“加血”和“减血”,再生成一个HorizontalScrollbar(水平滚动条),用来作为血条的原型。每按下“加血”按钮,血条的值增加0.1,每按下“减血”按钮,血条的值减少0.1。最高血量值为1,最少为0.

    代码如下:

    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    
    public class IMGUI : MonoBehaviour {
        //血条位置
        private Rect healthPos; 
        //加血按钮位置
        private Rect upPos;
        //减血按钮位置
        private Rect downPos; 
        //当前血量
        private float health = 0.0f; 
        //加/减血之后的血量
        private float newHealth; 
    
        // Use this for initialization
        void Start () {
            healthPos = new Rect(200, 80, 100, 20);
            upPos = new Rect(100, 80, 40, 20);
            downPos = new Rect(150, 80, 40, 20);
            //开始的时候新的血量等于0
            newHealth = health;
        }
    
        // Update is called once per frame
        void Update () {
    
        }
        private void OnGUI()
        {
            if (GUI.Button(upPos, "加血"))
            {
                //血量最多为1,每次加0.1
                newHealth = health + 0.1f > 1.0f ? 1.0f : health + 0.1f;
            } else if (GUI.Button(downPos, "减血"))
            {
                //血量最低为0,每次减0.1
                newHealth = health - 0.1f < 0 ? 0.0f: health - 0.1f;
            }
            //用Mathf.Lerp()函数插值计算health,使得血条值平滑变化,而不是突变。
            health = Mathf.Lerp(health, newHealth, 0.05f);
            GUI.HorizontalScrollbar(healthPos, 0, health, 0, 1);
        }
    }
    
    1. 将脚本挂载到对象HealthSlider上,运行效果如下:

在这里插入图片描述

UGUI实现

UGUI 是面向对象的 UI 系统。所有 UI 元素都是游戏对象,友好的图形化设计界面, 可在场景渲染阶段渲染这些 UI 元素。

步骤:

  1. 在层次视图,Context 菜单 -> 3D Object -> Plane 添加 Plane 对象

  2. 在Asset Store中搜索Standard assets,导入资源,这里我们主要使用的是Character,不过最好把其他的也导入,不然可能会报错。有一些导入的cs脚本会报错,把那些脚本删掉就好。

  3. 资源视图展开 Standard Assets :: Charactors :: ThirdPersonCharater :: Prefab

  4. 将 ThirdPersonController 预制拖放放入场景,改名为 Ethan

  5. 检查以下属性

    • Plane 的 Transform 的 Position = (0,0,0)
    • Ethan 的 Transform 的 Position = (0,0,0)
    • Main Camera 的 Transform 的 Position = (0,1,-10)
  6. 运行检查效果,此时可以看到Ethan站在Plane的中心,从Game场景中看,视野良好。

  7. 选择 Ethan 用上下文菜单 -> UI -> Canvas, 添加画布子对象

  8. 选择 Ethan 的 Canvas,用上下文菜单 -> UI -> Slider 添加滑条作为血条子对象

  9. 运行检查效果

  10. 选择 Ethan 的 Canvas,在 Inspector 视图

    • 设置 Canvas 组件 Render Mode 为 World Space
    • 设置 Rect Transform 组件 (PosX,PosY,Width, Height) 为 (0,2,160,20)
    • 设置 Rect Transform 组件 Scale (x,y) 为 (0.01,0.01)
  11. 运行检查效果,此时可以看到头顶 Slider 的 Ethan,用键盘移动 Ethan,可以看到血条随着人物移动。

  12. 展开 Slider

    • 选择 Handle Slider Area,禁灰(disable)该元素
    • 选择 Background,禁灰(disable)该元素
    • 选择 Fill Area 的 Fill,修改 Image 组件的 Color 为 红色
  13. 选择 Slider 的 Slider 组件

    • 设置 MaxValue 为 100
    • 设置 Value 为 75
  14. 运行检查效果,发现血条变为红色,随人物旋转。

  15. 为了使血条始终对着屏幕,给 Canvas 添加以下脚本 LookAtCamera.cs:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class LookAtCamera : MonoBehaviour
{
    // Start is called before the first frame update
    void Start()
    {
        
    }

    // Update is called once per frame
    void Update()
    {
        this.transform.LookAt(Camera.main.transform.position);
    }
}

效果如下:
在这里插入图片描述

分析两种实现的优缺点

IMGUI

优点:

  • IMGUI 符合游戏编程的传统
  • 在修改模型,渲染模型这样的经典游戏编程模式中,在渲染阶段之后,绘制UI界面无可挑剔。
  • 这样的编程既避免了UI元素保持在屏幕最前端,又有最佳的执行效率,一切控制掌握在程序员手中,这对早期计算和存储资源贫乏的游戏设备来说,更是弥足珍贵。
  • 适用于以下场景:
    • 在游戏中创建调试显示工具
    • 为脚本组件创建自定义的 Inspector 面板
    • 创建新的编辑器窗口和工具来扩展 Unity 环境

缺点:

  • 它是代码驱动的 UI 系统,没有图形化设计界面,只能在 OnGUI 阶段用 GUI 系列的类绘制各种 UI 元素,因此 UI元素只能浮在游戏界面之上。
  • 开发效率低下,难以调试。
  • IMGUI系统通常不适用于玩家可能使用并与之交互的普通游戏内用户界面。

UGUI

优点:

  • UGUI 是面向对象的 UI 系统。所有 UI 元素都是游戏对象,友好的图形化设计界面, 可在场景渲染阶段渲染这些 UI 元素。
  • 设计师甚至不需要程序员帮助,使用这些工具就可直接创造游戏元素,乃至产生游戏程序。
  • 跨设备执行,自动适应不同分辨率
  • UI 元素与游戏场景融为一体的交互
  • 支持复杂的布局
  • 所见即所得(WYSIWYG)设计工具
  • 支持多模式、多摄像机渲染
  • 面向对象的编程

预制的使用方法

  • 在Assets文件夹中创建Prefabs文件夹
  • 将IMGUI的HealthSlider拖入Prefabs文件夹中,此时HealthSlider就变成了预制体
  • 将Canvas拖入Prefabs文件夹中,此时Canvas也变成了预制体
  • prefab只有两种使用方法,一是在代码里调用Instantiate;另一种是拖到场景里产生一个和他关联的物体(在Hierarchy里显示蓝色)。

视频链接

github地址

2015-04-24 12:13:29 u013895270 阅读数 1132
  • 丑小鸭历险记——趣味玩转unity2d游戏开发(上)

    故事简介 丑小鸭生来就很丑,谁都不喜欢它,从小被其他鸭子欺负。它无奈离开了妈妈,拿上一把猎枪,独自流浪,风餐露宿。每当遇到各种怪物而子弹不够用时,丑小鸭只能通过自己的血肉之躯踩死怪物。路上只能靠水果和蔬菜维持体力,无聊时也能抬头数星星。翻山越岭,逢水架桥,勇闯空中栈道和独木桥,踩过蹦床,躲过电锯,钻过加农炮,坐过火箭,穿过枪林弹雨,在极度艰苦的条件下大战终极BOSS。最终,丑小鸭占领了一座豪华城堡,里面住着它心仪的白富美(其实也是个丑小鸭),它在夜色降临之前,轻轻关上门,打开灯,结束了流浪生涯,此时天空绽放绚烂的烟花,拉开幸福生活的序幕...... 这个故事告诉我们:只要你肯奋斗,我命由我不由天 时长 课程分为上下两部,共64节课(21.1小时) 其中,上部29节课(8.5小时),下部35节课(12.6小时) 课程特色 * 对初学者友好,初次遇到新技术会详细讲解 * 全程直播,坚决不在直播外偷偷修改 * 展示所有细节,手把手教学 * 游戏元素完整丰富,共3张地图18个关卡 * 代码和文档开源,github托管地址 https://github.com/sailings/DuckAdventure * 完善的售后支持 涵盖实战中常用的知识点 * Physics,刚体,碰撞,弹簧体 * Mecanim,动画状态机,动画融合,动画层 * Animation,动画编辑与录制 * 单例模式 * 协程 * Dotween * 粒子特效 * 射线检测 * 键盘和移动端输入 * Cinemachine相机跟随,Confiner扩展 * UGUI常见控件,HUD * 屏幕自适应 * 地图与关卡解锁 * 关卡滑动 * 背景滚动 * 子弹轨迹计算 * 音效管理 * 场景编辑 * 数据及上下文存储 大纲 丑小鸭历险记——趣味玩转unity2d游戏开发(上)   1.游戏简介及演示 2.怎样画一匹骏马 3.千里之行始于足下 4.修复连续跳跃以及Jump动画融合和播放 5.匍匐前进 6.星星碰撞以及游戏管理中增加积分 7.吃水果蔬菜、游戏结束、制作水果蔬菜预设 8.相机跟随、口水怪动画 9.踩死怪物 10.喷火怪 11.钢管怪 12.飞翔的小鸟怪 13.食人鱼 14.从天而降怪 15.落水逻辑 16.空中栈道和独木桥 17.蹦床和电锯 18.加农炮 19.强力磁铁 20.坐着火箭旅行 21.漫天飞舞的电锯 22.枪林弹雨 23.丑小鸭的反击 24.定点保存 25.Boss动画、移动、释放怪物、生命值管理 26.Boss无敌以及特效 27.Boss血条以及坠机冒烟 28.Boss射击以及子弹轨道计算 29.梦幻城堡

    321 人正在学习 去看看 洪青霞

整体思想其实很简单,第一次写博客 所以大家多多原谅吧 

  1. 获得人物在场景中的世界坐标位置, 一般情况下 会沿着摄像机的向上的方向上做一些偏移 就确定了头像/血条在3d世界坐标系中的位置
  2.  用场景的摄像机把世界坐标位置转换到屏幕坐标系
  3. 用2d摄像机把屏幕坐标系转移到2d显示的世界坐标系
听起来比较糊涂, 直接上代码

Vector3 worldPos = GetRoleWorldPosition();
worldPos += scene.Camera3D.transform.up * headerOffset;
Vector3 screenPos = scene.Camera3D.WorldToScreenPoint(worldPos);
Vector3 worldUIPos = scene.Camera2D.ScreenToWorldPoint(screenPos);

unity 血条功能

阅读数 49

Unity创建角色血条

阅读数 2011

没有更多推荐了,返回首页