unity3d c#脚本的问题!!
usingUnityEngine;usingSystem.Collections;publicclassLineShoot:MonoBehaviour{privateLi...
using UnityEngine;
using System.Collections;
public class LineShoot : MonoBehaviour {
private LineRenderer lineRenderer;
private Vector3 Fposition;
private Vector3 Sposition;
private GameObject obj;
void Start()
{
//添加LineRenderer组件
lineRenderer = gameObject.AddComponent<LineRenderer>();
//设置材质
lineRenderer.material = new Material(Shader.Find("Particles/Additive"));
//设置颜色
lineRenderer.SetColors(Color.red, Color.yellow);
//设置宽度
lineRenderer.SetWidth(0.01f, 0.01f);
//StartCoroutine(Update(0.0F));
}
void Update(int waitTime)
{
lineRenderer = GetComponent<LineRenderer>();
if (Input.GetMouseButtonDown(0))
{
lineRenderer.SetVertexCount(2);
obj = GameObject.Find("gGUN03h");
Fposition = obj.transform.position;
lineRenderer.SetPosition(0,Fposition);
Sposition = Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x,Input.mousePosition.y,1.0f));
lineRenderer.SetPosition(1,Sposition);
//yield return new WaitForSeconds(waitTime);
//lineRenderer.SetVertexCount(2);
}
}
void OnGUI()
{
GUILayout.Label("当前鼠标X轴位置:" + Input.mousePosition.x);
GUILayout.Label("当前鼠标Y轴位置:" + Input.mousePosition.y);
}
}
这段代码中,当update()函数不带参数便可画出线段,但当update()函数括号中带了参数便不可画出线段。我对c#语言不太熟悉,对出现的这个问题也很费解,加不加参数为何会影响到函数内的画线程序呢?
希望大神解答! 展开
using System.Collections;
public class LineShoot : MonoBehaviour {
private LineRenderer lineRenderer;
private Vector3 Fposition;
private Vector3 Sposition;
private GameObject obj;
void Start()
{
//添加LineRenderer组件
lineRenderer = gameObject.AddComponent<LineRenderer>();
//设置材质
lineRenderer.material = new Material(Shader.Find("Particles/Additive"));
//设置颜色
lineRenderer.SetColors(Color.red, Color.yellow);
//设置宽度
lineRenderer.SetWidth(0.01f, 0.01f);
//StartCoroutine(Update(0.0F));
}
void Update(int waitTime)
{
lineRenderer = GetComponent<LineRenderer>();
if (Input.GetMouseButtonDown(0))
{
lineRenderer.SetVertexCount(2);
obj = GameObject.Find("gGUN03h");
Fposition = obj.transform.position;
lineRenderer.SetPosition(0,Fposition);
Sposition = Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x,Input.mousePosition.y,1.0f));
lineRenderer.SetPosition(1,Sposition);
//yield return new WaitForSeconds(waitTime);
//lineRenderer.SetVertexCount(2);
}
}
void OnGUI()
{
GUILayout.Label("当前鼠标X轴位置:" + Input.mousePosition.x);
GUILayout.Label("当前鼠标Y轴位置:" + Input.mousePosition.y);
}
}
这段代码中,当update()函数不带参数便可画出线段,但当update()函数括号中带了参数便不可画出线段。我对c#语言不太熟悉,对出现的这个问题也很费解,加不加参数为何会影响到函数内的画线程序呢?
希望大神解答! 展开
1个回答
展开全部
update()是MonoBehaviour自带的更新函数,每帧都会调用
它本身就是不带参数得,你不能重载这个函数
它本身就是不带参数得,你不能重载这个函数
更多追问追答
追问
那如果我想在update()中使用yield该怎么办呢?需要重设一个函数么?
追答
int t=0;
void Update()
{
doSth(t);
}
void doSth(int waitTime)
{
lineRenderer = GetComponent();
if (Input.GetMouseButtonDown(0))
{
lineRenderer.SetVertexCount(2);
obj = GameObject.Find("gGUN03h");
Fposition = obj.transform.position;
lineRenderer.SetPosition(0,Fposition);
Sposition = Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x,Input.mousePosition.y,1.0f));
lineRenderer.SetPosition(1,Sposition);
//yield return new WaitForSeconds(waitTime);
//lineRenderer.SetVertexCount(2);
}
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询