【Unity 代码相关】实现脚本之间动态变量传递

news2024/12/27 14:02:07

这是我在做作品的过程中遇到的问题,大概阐述一下遇到的问题及解决思路。

1 问题阐述

因为是做天空盒,有很多变量需要控制,shader之间又想实现颜色、变量的传递,所以整个项目的所有暴露出来的可调整变量,我都汇总在了主脚本Skybox中,并把这个Skybox脚本挂在了Main Camera对象下:

又在场景中加入了面片云模型:

面片云需要自转,我希望暴露出一个参数能够控制面片云自转的速度,这个参数希望跟其他参数一起,都在Skybox脚本中控制:

那么问题就来了,云自转我是单独给云模型对象挂了一个Rotate脚本,现在这个Rotate脚本需要以某种方式访问到Skybox脚本中定义的Cloud Speed变量。

GameObject.Find()方法被我Pass了,效率很低,还有就是一堆需要各种访问父对象的方法,我觉得好麻烦。。

如果是静态变量,那好说,在脚本Skybox里定义,

pulbic static int CloudSpeed = 1;

脚本B就可以直接访问这个变量,

int speed = Skybox.CloudSpeed;

但现在这个变量需要可调控,意味着不能是静态变量。所以整个过程就是,脚本Rotate需要访问脚本Skybox中定义的动态变量CloudSpeed

2 解决思路

我在Skybox脚本中定义CloudSpeed变量的同时,定义了一个方法,这个方法会返回定义变量的值:

[Range(1, 10)]
    public int CloudSpeed = 1;
    public int getCloudSpeed()
    {
        return CloudSpeed;
    }

 然后在Rotate脚本访问这个方法,

public Skybox skybox;

void Update()
{
        
    cloudSpeed = skybox.getCloudSpeed();
}

然后把Rotate脚本挂在我的clouds对象下,拖入Main Camera对象就行,

以上就是我的解决思路了,当然可能饶了弯路,,不一定是最好的方法。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/341800.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

算法训练营DAY53|392.判断子序列、115.不同的子序列

392. 判断子序列 - 力扣(LeetCode)https://leetcode.cn/problems/is-subsequence/ 判断子序列这道题目,和上一期的题解法几乎完全相同,只是递推公式有一点差别,但是要是完全用之前的代码也是可行的。…

模拟信号隔离放大器直流信号转换0-20mA/ 4-20mA/2-10V/0-±5V/0-±10V

概述:导轨安装DIN11 IPO EM系列模拟信号隔离放大器是一种将输入信号隔离放大、转换成按比例输出的直流信号混合集成电路。产品广泛应用在电力、远程监控、仪器仪表、医疗设备、工业自控等需要电量隔离测控的行业。该模块内部嵌入了一个高效微功率的电源,…

【Linux系统编程】02:文件操作

文件IO 系统调用&#xff08;不带缓冲的IO操作&#xff09;库函数&#xff08;默认带用户缓冲的IO操作&#xff09; 一、非缓冲IO 系统调用&#xff1a;即为不带缓冲的IO 1.打开文件open 2.读取文件read NAMEread - read from a file descriptorSYNOPSIS#include <unist…

Spring Boot HTTP 400排查

背景 前段时间朋友咨询他们公司某个HTTP接口偶现400错误&#xff0c;有没有什么好的分析方法和解决方案&#xff0c;使用的是Spring Cloud体系。最近有时间总结下这个问题的处理过程。 为了分析问题&#xff0c;笔者使用 Spring Boot 3.0.2还原报错场景进行讲解。 问题分析 …

OM | 强化学习 + 约束规划求解组合优化问题

组合优化在航空航天、交通规划以及经济学等众多学科领域中有广泛应用&#xff0c;其目标是在有限集中寻找最优解。然而状态空间过大的问题让目前组合优化变得棘手。在过去的几年中&#xff0c;使用深度强化学习&#xff08;deep reinforcement learning&#xff0c;DRL&#xf…

SharpSCCM:一款利用SCCM实现横向渗透的强大工具

关于SharpSCCM SharpSCCM是一款功能强大的横向渗透和凭证收集工具&#xff0c;该工具主要利用了微软终端配置管理器&#xff08;SCCM&#xff09;来实现其功能&#xff0c;并能够通过访问SCCM管理终端GUI来实现横向渗透和凭证收集。 功能介绍 1、后渗透功能&#xff0c;支持横…

QT入门Input Widgets之QSlider

目录 一、界面布局功能 1、界面位置介绍 2、控件界面基本属性 2.1horizontalSlider界面属性 2.2设置步进 2.3打开或关闭滑块跟踪&#xff08;setTracking&#xff09; 二、属性功能介绍 1、常用信号 2、调用信号 3、鼠标点击QSlider滑块定在点击位置 三、Demo展示 …

2.8、调度算法的评价指标

1、CPU 利用率 由于早期的 CPU 造价极其昂贵&#xff0c; 因此人们会希望让CPU尽可能多地工作\color{red}希望让 \texttt{CPU} 尽可能多地工作希望让CPU尽可能多地工作 CPU利用率\color{red}\texttt{CPU}利用率CPU利用率&#xff1a;指 CPU “忙碌” 的时间占总时间的比例。 利…

动态规划之01背包问题和完全背包问题

01背包的问题描述&#xff1a;&#xff08;内容参考代码随想录&#xff09;有n件物品和一个最多能背重量为w 的背包。第i件物品的重量是weight[i]&#xff0c;得到的价值是value[i] 。每件物品只能用一次&#xff0c;求解将哪些物品装入背包里物品价值总和最大。问题示例&#…

Echarts 设置折线图拐点的颜色,边框等样式,hover时改变颜色

第014个点击查看专栏目录上一篇文章我们讲到了如何设置拐点大小,图形类型&#xff0c;旋转角度&#xff0c;缩放同比&#xff0c;位置偏移等&#xff0c;这篇文章介绍如何设置拐点的颜色、边框大小颜色等样式。hover轴线时候&#xff0c;拐点的填充颜色改变文章目录示例效果示例…

Zookeeper安装部署

文章目录Zookeeper安装部署Zookeeper安装部署 将Zookeeper安装包解压缩&#xff0c; [rootlocalhost opt]# ll 总用量 14032 -rw-r--r--. 1 root root 12392394 10月 13 11:44 apache-zookeeper-3.6.0-bin.tar.gz drwxrwxr-x. 6 root root 4096 10月 18 01:44 redis-5.0.4 …

什么时候用MQ、MQ 的作用、延迟消息

本文主要参考沈剑大佬的消息队列系列的四篇博文和博文评论&#xff0c;以及刘海丰老师的《架构设计面试精讲》&#xff0c;文末是完整参考。 1、什么时候用MQ、MQ 的作用 MQ是一个互联网架构中常见的解耦利器。 1.1 MQ 的组成 Producer&#xff1a;消息的生产者&#xff1b; Br…

浅谈函数式编程和命令式编程的区别

一、函数式编程 ------------------------------------------------------------------------------------------------------------------------------------------ 函数式编程用一个英文单词来说的话就是“What?” 它关注结果 定义 把某个功能的具体实现&#xff0c;封装…

一文带你搞懂,Python语言运算符

Python语言支持很多种运算符&#xff0c;我们先用一个表格为大家列出这些运算符&#xff0c;然后选择一些马上就会用到的运算符为大家进行讲解。 说明&#xff1a;上面这个表格实际上是按照运算符的优先级从上到下列出了各种运算符。所谓优先级就是在一个运算的表达式中&#x…

【C语言必经之路——第12节】结构体初阶

一、结构体的声明结构是一些值的集合&#xff0c;这些值称为成员变量。结构的每个成员可以是不同类型的变量。结构体的声明struct tag{member-list;}variable-list;struct&#xff1a;是结构体定义必不可少的关键字tag&#xff1a;结构名member-list&#xff1a;成员列表(标量、…

2.16、生产者-消费者问题

系统中有一组生产者进程和一组消费者进程&#xff0c;生产者进程每次生产一个产品放入缓冲区&#xff0c;消费者进程每次从缓冲区中取出一个产品并使用。&#xff08;注:这里的“产品”理解为某种数据&#xff09; 生产者、消费者共享一个初始为空、大小为 n 的缓冲区。 只有…

Linux删除软链接

不防大家试试 unlink 命令 首先我们先来创建一个文件 #mkdir test_chk #touch test_chk/test.txt #vim test_chk/test.txt (这一步随便在这个test.txt里写点东东即可) 下面我们来创建test_chk目录 的软链接 #ln-s test_chk test_chk_ln 软链接创建好了&#xff0c;我们来…

应用安全系列之三十八:注入问题的成因以及预防原理

自从有了OWASP TOP的排名依赖&#xff0c;注入问题就一直排名前三&#xff0c;这就说明了注入问题对系统的影响是十分严重的&#xff0c;而且&#xff0c;注入问题一般比较容易被利用。注入问题产生的根本原因就是程序在接受到请求中的参数时&#xff0c;没有经过严格的验证和正…

前端工程师leetcode算法面试必备-二分搜索算法(下)索算法(下)

一、287. 寻找重复数 给定一个包含 n 1 个整数的数组 nums&#xff0c;其数字都在 1 到 n 之间&#xff08;包括 1 和 n&#xff09;&#xff0c;可知至少存在一个重复的整数。假设只有一个重复的整数&#xff0c;找出这个重复的数。 1、HashMap 在没有其它附加条件的情况下&…

如何处理“WLAN没有有效的IP配置”这一问题?

&#x1f680;write in front&#x1f680; &#x1f4dc;所属专栏&#xff1a;暂无 &#x1f6f0;️博客主页&#xff1a;睿睿的博客主页 &#x1f6f0;️代码仓库&#xff1a;&#x1f389;VS2022_C语言仓库 &#x1f3a1;您的点赞、关注、收藏、评论&#xff0c;是对我最大的…