zoukankan      html  css  js  c++  java
  • Unity-WIKI 之 DrawArrow

    组件作用

    Unity画方向箭头类库,在Scene视图或在Game视图打开Gizmos查看效果

    效果预览

    HeadRotation  SpawnPoints image

    wiki地址

    http://wiki.unity3d.com/index.php/DrawArrow

    组件源码

    using UnityEngine;
    using System.Collections;
    
    public class DebugForward : MonoBehaviour {
        void Update()
        {
            //使用DwawArrow
            DrawArrow.ForDebug(transform.position, transform.forward, Color.green);
            //使用Unity自带的画线函数
            Debug.DrawLine(transform.position, Vector3.back, Color.red);
        }
    }
    
    DrawArrow.cs
    using UnityEngine;
    using System.Collections;
     
    public static class DrawArrow
    {
        public static void ForGizmo(Vector3 pos, Vector3 direction, float arrowHeadLength = 0.25f, float arrowHeadAngle = 20.0f)
        {
            Gizmos.DrawRay(pos, direction);
     
            Vector3 right = Quaternion.LookRotation(direction) * Quaternion.Euler(0,180+arrowHeadAngle,0) * new Vector3(0,0,1);
            Vector3 left = Quaternion.LookRotation(direction) * Quaternion.Euler(0,180-arrowHeadAngle,0) * new Vector3(0,0,1);
            Gizmos.DrawRay(pos + direction, right * arrowHeadLength);
            Gizmos.DrawRay(pos + direction, left * arrowHeadLength);
        }
     
        public static void ForGizmo(Vector3 pos, Vector3 direction, Color color, float arrowHeadLength = 0.25f, float arrowHeadAngle = 20.0f)
        {
            Gizmos.color = color;
            Gizmos.DrawRay(pos, direction);
     
            Vector3 right = Quaternion.LookRotation(direction) * Quaternion.Euler(0,180+arrowHeadAngle,0) * new Vector3(0,0,1);
            Vector3 left = Quaternion.LookRotation(direction) * Quaternion.Euler(0,180-arrowHeadAngle,0) * new Vector3(0,0,1);
            Gizmos.DrawRay(pos + direction, right * arrowHeadLength);
            Gizmos.DrawRay(pos + direction, left * arrowHeadLength);
        }
     
        public static void ForDebug(Vector3 pos, Vector3 direction, float arrowHeadLength = 0.25f, float arrowHeadAngle = 20.0f)
        {
            Debug.DrawRay(pos, direction);
     
            Vector3 right = Quaternion.LookRotation(direction) * Quaternion.Euler(0,180+arrowHeadAngle,0) * new Vector3(0,0,1);
            Vector3 left = Quaternion.LookRotation(direction) * Quaternion.Euler(0,180-arrowHeadAngle,0) * new Vector3(0,0,1);
            Debug.DrawRay(pos + direction, right * arrowHeadLength);
            Debug.DrawRay(pos + direction, left * arrowHeadLength);
        }
        public static void ForDebug(Vector3 pos, Vector3 direction, Color color, float arrowHeadLength = 0.25f, float arrowHeadAngle = 20.0f)
        {
            Debug.DrawRay(pos, direction, color);
     
            Vector3 right = Quaternion.LookRotation(direction) * Quaternion.Euler(0,180+arrowHeadAngle,0) * new Vector3(0,0,1);
            Vector3 left = Quaternion.LookRotation(direction) * Quaternion.Euler(0,180-arrowHeadAngle,0) * new Vector3(0,0,1);
            Debug.DrawRay(pos + direction, right * arrowHeadLength, color);
            Debug.DrawRay(pos + direction, left * arrowHeadLength, color);
        }
    }
  • 相关阅读:
    Android Toast效果
    禁锢的思维
    偶遇makeblock
    发疯,宁愿一年少赚10万也不想和芯片打交道了
    Linux物理内存相关数据结构
    字符设备驱动框架
    Linux在IA-32体系结构下的地址映射
    使用busybox构建根文件系统
    在内容长页处动态增加滚动的返回头部图标
    用IE滤镜实现多种常用的CSS3效果
  • 原文地址:https://www.cnblogs.com/zhaoqingqing/p/3648813.html
Copyright © 2011-2022 走看看