OnRenderObject: 在完成所有常规场景渲染后调用此函数。此时,可使用 GL 类或 Graphics.DrawMeshNow 绘制自定义几何图形。

C# 代码部分:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class huafu : MonoBehaviour
{
    List<Vector3> PointList;
    public Image image;
    Texture2D texture;
    // Start is called before the first frame update
    void Start()
    {
        PointList = new List<Vector3>();
        texture = new Texture2D(300, 400);// image.sprite.texture;
        image.GetComponent<Image>().material.mainTexture = texture;
    }
    static Material lineMaterial;
    static void CreateLineMaterial()
    {
        if (!lineMaterial)
        {
            // Unity has a built-in shader that is useful for drawing
            // simple colored things.
            Shader shader = Shader.Find("Hidden/Internal-Colored");//Custom/OutLine");
            lineMaterial = new Material(shader);
            lineMaterial.hideFlags = HideFlags.HideAndDontSave;
            // Turn on alpha blending
            lineMaterial.SetInt("_SrcBlend", (int)UnityEngine.Rendering.BlendMode.SrcAlpha);
            lineMaterial.SetInt("_DstBlend", (int)UnityEngine.Rendering.BlendMode.OneMinusSrcAlpha);
            // Turn backface culling off
            lineMaterial.SetInt("_Cull", (int)UnityEngine.Rendering.CullMode.Off);
            // Turn off depth writes
            lineMaterial.SetInt("_ZWrite", 0);
        }
    }
    public void OnRenderObject()
    {
        CreateLineMaterial();
        // Apply the line material
        lineMaterial.SetPass(0);

//正交投影
        GL.LoadOrtho();
        // Draw lines
        if (PointList.Count > 2)
        {
            GL.Begin(GL.LINES);
            for (int i = 0; i < PointList.Count-1; ++i)
            {
                GL.Color(Color.red);

GL.Vertex(PointList[i]);
              
                GL.Vertex(PointList[i+1]);
            }
            GL.End();
        }
      
        // GLTrianGles2(myPoint2);
       
    }

void GenerateTexture()
    {
       // texture = new Texture2D(300, 400);
        for (int i = 0; i < PointList.Count-1; i++)
        {
            int XX = (int)(PointList[i].x * texture.width);
            int YY = (int)(PointList[i].y * texture.height);

int XX1 = (int)(PointList[i+1].x * texture.width);
            int YY1 = (int)(PointList[i+1].y * texture.height);
            // 两点之间 做lerp插值
            for (int j = 0; j < 80; j++)
            {
                int tmpXX =(int) Mathf.Lerp(XX, XX1, j / 80.0f);
                int tmpYY = (int)Mathf.Lerp(YY, YY1, j / 80.0f);
                texture.SetPixel(tmpXX, tmpYY, Color.red);
            }

}
        texture.Apply();
        image.GetComponent<Image>().material.mainTexture = texture;
        //  GetComponent<Renderer>().material.mainTexture = texture;
    }
    // Update is called once per frame
    void Update()
    {
        if (Input.GetMouseButton(0))
        {
            Debug.Log(Input.mousePosition+" "+ Screen.width);

Vector2 viewPos = Camera.main.ScreenToViewportPoint(Input.mousePosition);
            if (PointList.Count == 0)
            {
                PointList.Add(viewPos);
            }
            else if (Input.mousePosition != PointList[PointList.Count - 1])
                PointList.Add(viewPos);

}
        if (Input.GetMouseButtonUp(0))
        {
            GenerateTexture();
            PointList.Clear();
           
        }

}
}

Unity3D 实现阴阳师 画符相关推荐

  1. mysql 5.5.48源码安装_centos5.5+apache2.2.15+mysql5.1.48+php5.2.13 编译安装 --by 画符抓鬼撰聊斋.doc...

    centos5.5+apache2.2.15+mysql5.1.48+php5.2.13 编译安装 --by 画符抓鬼撰聊斋.doc 还剩 5页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲 ...

  2. unity3d 关于如何画扇形

    为啥我今天写这个画扇形主要原因是看见我的朋友为画一个扇形不停的找资料,可找完了又嫌弃人家写的多所以那我就花了自己两节课搞了一下,(其实我当时看别人写的一大堆也用点不太懂,主要是我数学太差了) 首先我们 ...

  3. unity3d 中能画出漂亮图案的函数之玫瑰图案

    接下来我们用程序画出一些函数图形,这是一件赏心悦目的事情. 玫瑰函数就是一件完美的艺术模型,简单漂亮,当然还有其他比如:人物图案.建筑图等等. 今天就介绍玫瑰函数,其他的以后再介绍,先看看玫瑰函数的公 ...

  4. Unity3D:Gizmos画圆(原创)

    Unity3D引擎技术交流QQ群:[21568554] Gizmos是场景视图里的一个可视化调试工具. 在做项目过程中.我们常常会用到它,比如:绘制一条射线等. Unity3D 4.2版本号截至.眼下 ...

  5. Unity 仿 了不起修仙模拟器画符

  6. 【Unity3d日常开发】Unity3D中实现热力图、风向图、温度图效果

    推荐阅读 CSDN主页 GitHub开源地址 Unity3D插件分享 简书地址 我的个人博客 QQ群:1040082875 大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有 ...

  7. python阴阳师脚本_用Python实现抽卡的脚本

    1. 想法 突然想搞一个FGO的脚本,但还是决定先从阴阳师开始入手 毕竟现在版本官方已经有了自动御魂.觉醒和探索的脚本了. 既然是这样那不如就搞一个抽卡的脚本好了,这样大佬(土豪,欧皇)们 几百连抽就 ...

  8. 利用Python实现阴阳师自动抽卡

    Linux编程 点击右侧关注,免费入门到精通! 作者丨Meowcolm024 https://www.jianshu.com/p/b45416bed86f 前言 现在版本官方已经有了自动御魂.觉醒和探 ...

  9. 使用python玩阴阳师,自动抽到SSR

    前言 现在版本官方已经有了自动御魂.觉醒和探索的脚本了. 既然是这样那不如就搞一个抽卡的脚本好了,这样大佬(土豪,欧皇)们 几百连抽就不用画符,和点SSR点到手软了XD. 不简单的具体实现 1.通过a ...

  10. 画论31 庄肃《画继补遗》

    [中国历代画论目录] ● 序 予自龆龀及壮年,嗜画成癖.每见奇踪古迹,不计家之有无,倾囊倒箧,必得之而后已.否则惙惙若有所遗失,致为亲朋之所窃笑.今老矣,平生所藏固不多,而所见亦不少.第恨炎宋中兴以后 ...

最新文章

  1. Google全球员工围攻Google!
  2. Jdk8集合源码解析---ArrayList
  3. 共享库报错问题及解决方案
  4. [Web 前端] inline-block元素设置overflow:hidden属性导致相邻行内元素向下偏移
  5. WPS:Excel数据表格查询定位技巧之如何设置加重颜色的十字定位(定位数据更加一目了然)
  6. 整合spring cloud云架构 - SSO单点登录之OAuth2.0 登出流程(3)
  7. Php刷新重载id,php 使用 __call重载
  8. kafka图形化管理工具kafka-manager
  9. swift 拖动按钮_Swift 简单控件示例:滑块(UISlider)
  10. [C++] pair
  11. 全网首次公开!iOS14 到来前,开发者必需的时间表及 To do list
  12. jvm内存结构与java内存模型
  13. Python面试常见算法题集锦
  14. 《OpenGL编程指南(原书第9版)》——第3章 3.0OpenGL绘制方式
  15. Latex 中文使用方法和示例——分别基于MiKTeX(CTeX套装)、TeXLive 编译系统测试CJK、ctex 宏包,PDFLaTeX、XeLaTeX编译命令及GBK、UTF-8文件编码的使用
  16. 安徽科技学院 信网学院网络文化节 陈鑫鑫
  17. 网络:CGI程序制作
  18. 中继器、集线器、网桥、交换机、路由器、网关的超全总结
  19. Programmer Study Guide-游戏程序员指南
  20. NLPCC tutorial

热门文章

  1. CodeForces 669A Little Artem and Presents
  2. 解决跳转ICP备案网页报400的问题
  3. [转]一些漢字、字體/字型、内碼、輸入法資料的整理
  4. html 给div设置边框颜色代码,div边框颜色设置
  5. ANU COMP1100 Lab1简介
  6. 肠道微生物组的个体化诊·疗进程
  7. 5G商用元年开启万亿市场, 25G服务器端口出货量大幅增长
  8. nlp自然语言处理_自然语言处理中的偏见nlp是一个危险但可解决的问题
  9. [轻笔记]Juliav0.6配置jupyter
  10. php 卡路里计算,热量换算_懒人工具|www.ab173.com