赞
踩
目录
三.操作:一:效果不好(因为我的飞机是不断飞行的):头顶名称
https://gameinstitute.qq.com/community/detail/120938
- 总结:待检测
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
-
- using UnityEngine.UI;
-
- /// <summary>
- /// 功能:显示敌人的名字条
- /// </summary>
- public class MyEnemy_name_bar : MonoBehaviour
- {
- /// <summary>obj:姓名条预制件</summary>
- [Tooltip("obj:姓名条预制件")]
- [Header("obj:姓名条预制件")]
- public GameObject obj_name_bar;
-
- /// <summary>obj:姓名条实例化</summary>
- private GameObject obj_name_bar_Instantiate;
-
- /// <summary>Vector3:敌人的屏幕坐标</summary>
- private Vector3 EnemySceenPosition;
-
- /// <summary>Vector3:姓名条和敌人屏幕坐标的偏移</summary>
- [Tooltip("Vector3:姓名条和敌人屏幕坐标的偏移")]
- [Header("Vector3:姓名条和敌人屏幕坐标的偏移")]
- public Vector3 vec3_nameBarAndEnemy_offset;
-
- /// <summary>float:SmoothDamp的时间</summary>
- [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();
- }
-
- /// <summary>
- /// 功能:通过敌人标签修改Text的内容,也就是修改姓名条的内容
- /// </summary>
- void SetSetName(string _strName)
- {
- obj_name_bar_Instantiate.GetComponent<Text>().text = _strName;
- }
-
- /// <summary>
- /// 功能:设置姓名条跟随敌人移动
- /// </summary>
- 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);
-
- }
-
- }
![](https://csdnimg.cn/release/blogv2/dist/pc/img/newCodeMoreWhite.png)
- 总结:如果要优化,可以将Sprite一直垂直于相机,这样能看到最完整的图片。
- 创建2DObject的Sprite
- 制作好图片,然后将图片拖到内部,
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。