协程的NullReferenceException 错误
public void loadPic(string url){WWW www = new WWW(url);StartCoroutine(WaitForRequest(www));}IEnumerator WaitForRequest(WWW www){yield return www;// check for errorsif (www.error == null){Debug.Log("WWW Ok!: " + www.text);image.GetComponent<Image>().overrideSprite = Sprite.Create(www.texture, new Rect(0, 0, 438, 441), new Vector2(0.5f, 0.5f));}else{Debug.Log("WWW Error: " + www.error);}}
ApiClient apiclient = new ApiClient();string imageurl = apiclient.callSearchApiWithCSharp(realEstateType, preisText.text, zimmerText.text);Debug.Log(imageurl);apiclient.loadPic(imageurl);
协同程序由协程调度程序运行,并且绑定到用于启动协程的MonoBehaviour。StartCoroutine是MonoBehaviour的实例成员。
不得使用“new”创建所有组件。始终需要使用AddComponent创建组件。组件只能在GameObjects上“活动”。
错误初始化的组件(即使用“new”创建)将变为“假的空对象”。
“假空对象”是真正的C#托管类,但它们缺少引擎核心中的本机C ++等价物。它们仍然可以用作“普通”托管类,但是与Untiy无关的任何东西都可以工作。此外,“UnityEngine.Object”基类会重载==运算符,并且当它缺少本机部分时“伪造”该对象为空。当您使用new创建Component类或者销毁此类对象时,会发生这种情况。
因此,解决方案是您必须将“ApiClient”组件附加到GameObject。与组件不同,GameObjects可以使用“new”创建。所以你可以简单地替换
ApiClient apiclient = new ApiClient();
同
ApiClient apiclient = (new GameObject("SomeObjName")).AddComponent<ApiClient>();
这将创建一个名为“SomeObjName”的新GameObject,并将ApiClient组件添加到其中。
请记住,GameObject(及其组件)现在将出现在场景中,直到您将其销毁。
作为替代方案,您可以使用以下命令将ApiClient组件附加到调用脚本所附加到的同一个游戏对象:
ApiClient apiclient = gameObject.AddComponent<ApiClient>();
每个组件(因此MonoBehaviour)都具有gameObject可用于访问此组件所附加的GameObject 的属性。
编辑
关于“销毁”的快速说明。销毁组件时,只会销毁和删除该组件。如果你在GameObject引用上调用Destroy,它将破坏包含所有附加组件的游戏对象(因为它们不存在没有GameObject)以及GameObject的所有子游戏对象。
或者建一个该类的实例,不要用单例模式。
协程的NullReferenceException 错误的更多相关文章
- lua中的协程
lua中的协程和线程类似: 1. 协程拥有自己的独立的栈,局部变量,和指令: 2. 所有协程都可以共享全局变量: 3. 协程不能像线程那样并行执行,协程之间需要相互协调执行,同一个时刻只能运行一个协程 ...
- Openresty Lua协程调度机制
写在前面 OpenResty(后面简称:OR)是一个基于Nginx和Lua的高性能Web平台,它内部集成大量的Lua API以及第三方模块,可以利用它快速搭建支持高并发.极具动态性和扩展性的Web应用 ...
- 【错误总结1:unity StartCoroutine 报 NullReferenceException 错误】
今天在一个项目中,写了一个单例的全局类,该类的作用是使用协程加载场景.但在StartCoroutine 这一步报了NullReferenceException 的错.仔细分析和搜索之后,得到错误原因. ...
- Lua的协程和协程库详解
我们首先介绍一下什么是协程.然后详细介绍一下coroutine库,然后介绍一下协程的简单用法,最后介绍一下协程的复杂用法. 一.协程是什么? (1)线程 首先复习一下多线程.我们都知道线程——Thre ...
- python之协程与IO操作
协程 协程,又称微线程,纤程.英文名Coroutine. 协程的概念很早就提出来了,但直到最近几年才在某些语言(如Lua)中得到广泛应用. 子程序,或者称为函数,在所有语言中都是层级调用,比如A调用B ...
- Python-09-线程、进程、协程、异步IO
0. 什么是线程(thread)? 线程,有时被称为轻量级进程(Lightweight Process,LWP),是程序执行流的最小单元.一个标准的线程由线程ID,当前指令指针(PC),寄存器集合和堆 ...
- python学习道路(day11note)(协程,同步与异步的性能区别,url爬网页,select,RabbitMq)
1.协程 #协程 又称微线程 是一种用户的轻量级线程 程序级别代码控制 就不用加机器 #不同函数 = 不同任务 A函数切到B函数没有进行cpu级别的切换,而是程序级别的切换就是协程 yelied #单 ...
- c语言实现的协程
这几天突然对协程感兴趣,于是自己实现了一个,代码放在github上:https://github.com/adinosaur/Coro 协程是一种用户空间的非抢占式线程,主要用来解决等待大量的IO操作 ...
- [转载]协程-cooperative multitasking
[转载]协程三讲 http://ravenw.com/blog/2011/08/24/coroutine-part-1-defination-and-classification-of-corouti ...
随机推荐
- cdh 5.13 centos6.9安装
1.所有节点准备工作 1).关闭防火墙 2).关闭selinux 并重启系统 3).建立NTP服务器,所有数据节点每天定时同步时间. 主节点在ntp.conf中增加 restrict 192.168. ...
- Floyd算法简介
参考:https://blog.csdn.net/qq_35644234/article/details/60875818 一.Floyd算法的介绍 1.算法的特点: 弗洛伊德算法是解决任 ...
- Linux系统一本通(实用篇)
本人最近一直在ubuntu,接下来和大家分享我曾经踩过的坑,和一些非常实用的命令知识- 安装中的磁盘分配 一般来说,在linux系统中都有最少两个挂载点,分别是/ (根目录)及 swap(交换分区), ...
- Python+Selenium学习--上传文件
场景 文件上传操作也比较常见功能之一,上传功能操作webdriver 并没有提供对应的方法,关键上传文件的思路.上传过程一般要打开一个系统的window 窗口,从窗口选择本地文件添加.所以,一般会卡在 ...
- The following packages have unmet dependencies错误
当出现类似这类错误: The following packages have unmet dependencies: python-dev : Depends: python (= 2.7.5-5ub ...
- swift语言版本选择 - 解决XCode报错:The “Swift Language Version” (SWIFT_VERSION) build setting must be set to a supported valu
转发链接:https://blog.csdn.net/nathan1987_/article/details/79757368 The “Swift Language Version” (SWIFT_ ...
- linux命令学习之:chmod
chmod命令用来变更文件或目录的权限.在Linux系统家族里,文件或目录权限的控制分别以读取R.写入W.执行X3种一般权限来区分,另有3种特殊权限可供运用.用户可以使用chmod指令去变更文件与目录 ...
- Bootstrap(9) 巨幕页头缩略图和警告框组件
一.巨幕组件巨幕组件主要是展示网站的关键性区域.//在固定的范围内,有圆角 <div class="container"> <div class="ju ...
- Oracle 表空间和数据文件之间的关系
首先,你需要明白的一点是:数据库的物理结构是由数据库的操作系统文件所决定,每一个Oracle数据库是由三种类型的文件组成:数据文件.日志文件和控制文件.数据库的文件为数据库信息提供真正的物理存储. 每 ...
- git-flow 备忘清单
原文地址:http://danielkummer.github.io/git-flow-cheatsheet/index.zh_CN.html