知方号

知方号

Unity中如何制作血条或头顶名称<3dmax人物头顶对不齐>

Unity中如何制作血条或头顶名称

目录

一.目的

1.想知道:Unity中如何制作血条或头顶名称

二.参考

1.Unity3d制作血条的三种方法

三.操作:一:效果不好(因为我的飞机是不断飞行的):头顶名称

1.运行结果:效果不好

1.代码

1.Unity设置

三.操作:二:完成(不使用代码):头顶名称

1.运行效果

1.创建2DObject的Sprite

一.目的 1.想知道:Unity中如何制作血条或头顶名称

 

二.参考 1.Unity3d制作血条的三种方法

https://gameinstitute.qq.com/community/detail/120938

总结:待检测

 

三.操作:一:效果不好(因为我的飞机是不断飞行的):头顶名称 1.运行结果:效果不好

 

1.代码 using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.UI;/// /// 功能:显示敌人的名字条/// public class MyEnemy_name_bar : MonoBehaviour{ /// obj:姓名条预制件 [Tooltip("obj:姓名条预制件")] [Header("obj:姓名条预制件")] public GameObject obj_name_bar; /// obj:姓名条实例化 private GameObject obj_name_bar_Instantiate; /// Vector3:敌人的屏幕坐标 private Vector3 EnemySceenPosition; /// Vector3:姓名条和敌人屏幕坐标的偏移 [Tooltip("Vector3:姓名条和敌人屏幕坐标的偏移")] [Header("Vector3:姓名条和敌人屏幕坐标的偏移")] public Vector3 vec3_nameBarAndEnemy_offset; /// float:SmoothDamp的时间 [Tooltip("float:SmoothDamp的时间")] [Header("float:SmoothDamp的时间")] [Range(0,0.1f)] public float fSmoothTime=0.001f; void Start() { //把游戏物体的世界坐标转换为屏幕坐标 EnemySceenPosition = Camera.main.WorldToScreenPoint(transform.position); //创建一个姓名条 obj_name_bar_Instantiate = Instantiate(obj_name_bar, EnemySceenPosition, Quaternion.identity); //设置姓名条的父物体 GameObject obj_Canvas_nameBar = GameObject.Find("Canvas_nameBar"); if (obj_Canvas_nameBar) { obj_name_bar_Instantiate.transform.SetParent(obj_Canvas_nameBar.transform); } else { Debug.LogError("姓名条Canvas_nameBar没有找到!"); } switch (this.tag) { case "Enemy_f22": SetSetName("美军F22"); break; default: break; } } void Update() { //没帧都去执行使血条跟随物体 SetNameBarFollowEnemy(); } /// /// 功能:通过敌人标签修改Text的内容,也就是修改姓名条的内容 /// void SetSetName(string _strName) { obj_name_bar_Instantiate.GetComponent().text = _strName; } /// /// 功能:设置姓名条跟随敌人移动 /// void SetNameBarFollowEnemy() { //测试:1:完成(but:太抖了):姓名条跟随敌人移动 EnemySceenPosition = Camera.main.WorldToScreenPoint(transform.position) + vec3_nameBarAndEnemy_offset;//把物体坐标转换为屏幕坐标,修改偏移量 obj_name_bar_Instantiate.transform.position = EnemySceenPosition; 测试:2:待检测:姓名条跟随敌人移动+解决太抖的事情 //EnemySceenPosition = Camera.main.WorldToScreenPoint(transform.position) + vec3_nameBarAndEnemy_offset;//把物体坐标转换为屏幕坐标,修改偏移量 //Vector3 currentVelocity = new Vector3(0, 0, 0); //Vector3 cameraVelocity = Vector3.zero; //obj_name_bar_Instantiate.transform.position=Vector3.SmoothDamp(obj_name_bar_Instantiate.transform.position, EnemySceenPosition, ref cameraVelocity, fSmoothTime); }}

 

1.Unity设置

 

三.操作:二:完成(不使用代码):头顶名称 1.运行效果 总结:如果要优化,可以将Sprite一直垂直于相机,这样能看到最完整的图片。

 

1.创建2DObject的Sprite 创建2DObject的Sprite制作好图片,然后将图片拖到内部,

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至lizi9903@foxmail.com举报,一经查实,本站将立刻删除。