Catlike学习笔记(1.2)-使用Unity画函数图像

这篇Catlike教程介绍了如何在Unity中构建函数图像,包括使用小方块表达图像,Shader上色,以及通过时间参数实现图像动态变化。教程详细讲解了各个步骤,从确定图像范围和解析度,到创建Surface Shader和调整函数以引入时间参数,最后展示动态效果。
摘要由CSDN通过智能技术生成

Catlike系列教程』第二篇来了~今天周六,早上(上午11点)醒来去超市买了一周的零食回来以后就玩了一整天游戏非常有负罪感。现在晚上九点天还亮着感觉像下午7点左右的样子好像还不是很晚。。。所以就写一点东西吧。这一篇是「Building a Graph」挑战一下试试吧。

PART 1 概述

那么大概文章看下来我们预计要做以下事情。

  • 使用一定数量的小方块表达函数图像
  • 做一个 Shader 给图像上色使其更好看
  • 给图像传入时间参数使其动起来

PART 2 画函数图像

首先我们确认一下要支持的功能细节,根据默认摄像机的位置和视野我们就暂定需要画出函数[-1. 1]之间的图像,同时可以通过一个条拖动来修改函数的解析度,假设解析度可以是[10,100],那么我们需要在x=[-1, 1]之间生成[10,100]个方块。同时动态的调整方块的大小使其完美衔接。代码如下:

public class GraphController : MonoBehaviour
{
    [Range(10, 100), SerializeField] private int _resolution;
    [SerializeField] private GameObject _cube;

    // Use this for initialization
    private void Start ()
    {
        _cube.SetActive(false);

        var step = 2f / _resolution;
        var startPosX = -1f;
        var scale = Vector3.one * step;
        for (int i = 0; i < _resolution; i++)
        {
            var pos = new Vector3(startPosX + i * step, Calc(startPosX + i * step), 0);
            var point = Instantiate(_cube, transform);
            point.transform.localPosition = pos;
            point.transform.localScale = scale;
            point.SetActive(true);
        }
    }

    private float Calc(float x)
    {
        return Mathf.Pow(x, 2);
    }
}

根据Calc(float)可以看出我们画出来曲线是如下函数的图像。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值