Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Unity粒子系统:使用脚本更改发射器速度_C#_Unity3d_Compiler Errors_Particle System - Fatal编程技术网

C# Unity粒子系统:使用脚本更改发射器速度

C# Unity粒子系统:使用脚本更改发射器速度,c#,unity3d,compiler-errors,particle-system,C#,Unity3d,Compiler Errors,Particle System,我有一个粒子系统,它跟一个物体相连。发射器速度设置在刚体上。我想要的是让粒子系统跟随对象,就像它那样,但当检测到触摸输入时,粒子将跟随触摸输入,改变发射器速度以进行变换。在运行我附加的代码时,有两个编译器错误我已经尝试过,但未能修复。希望有人能看看 “粒子系统”不包含的定义 “emitterVelocity”和无可访问的扩展方法 “emitterVelocity”接受“ParticleSystem”类型的第一个参数 可以找到。第28行 “Transform”是在给定上下文中无效的类型。 第28

我有一个粒子系统,它跟一个物体相连。发射器速度设置在刚体上。我想要的是让粒子系统跟随对象,就像它那样,但当检测到触摸输入时,粒子将跟随触摸输入,改变发射器速度以进行变换。在运行我附加的代码时,有两个编译器错误我已经尝试过,但未能修复。希望有人能看看

  • “粒子系统”不包含的定义 “emitterVelocity”和无可访问的扩展方法 “emitterVelocity”接受“ParticleSystem”类型的第一个参数 可以找到。第28行
  • “Transform”是在给定上下文中无效的类型。 第28行
使用系统集合;
使用System.Collections.Generic;
使用UnityEngine;
公共类DragFingerMove:单一行为
{
专用矢量3触摸位置;
私人分词系统;
专用矢量3方向;
专用浮球移动速度=10f;
//用于初始化
私有void Start()
{
ps=GetComponent();
}
//每帧调用一次更新
私有void更新()
{
如果(Input.touchCount>0)
{
Touch-Touch=Input.GetTouch(0);
touchPosition=Camera.main.screen到世界点(touch.position);
touchPosition.z=0;
方向=(触摸位置-变换位置);
ps.emitterVelocity=变换;
ps.velocity=新矢量2(方向x,方向y)*移动速度;
如果(touch.phase==TouchPhase.end)
ps.速度=矢量2.0;
}
}
}

首先,当尝试访问Unity组件所连接的
转换时,您需要使用
转换(注意小写“t”与大写)。将
Transform
切换到
Transform
this.Transform

transform
是所有
monoBehavior
都具有的一个属性,该属性的值与调用
this.GetComponent()
的值相同。相比之下,
Transform
是类型
UnityEngine.Transform
,也就是说存在一个具有该名称的类

其次,关于设置发射器,可以在中设置
emitterVelocityMode
(标记为“发射器速度”)。
emitterVelocityMode
的值为

你可以说:

var ps_main = GetComponent<ParticleSystem>().main;
ps_main.emitterVelocityMode = ParticleSystemEmitterVelocityMode.Transform;
var ps_main=GetComponent().main;
ps_main.emitterVelocityMode=particleSystememitterLocationMode.Transform;

谢谢您的回答!以下是检查员的截图:答案已相应更新。希望能有帮助。
var ps_main = GetComponent<ParticleSystem>().main;
ps_main.emitterVelocityMode = ParticleSystemEmitterVelocityMode.Transform;