C# 为什么这个脚本在unity中显示错误? 使用UnityEngine; 使用UnityEngine.UI; 使用系统集合; 公共类玩家控制器:单行为{ 公众浮标速度; 公共文本; 公共文本; 私人刚体; 私人整数计数; 无效开始() { rb=GetComponent(); 计数=0; SetCountText(); winText.text=“”; } void FixedUpdate() { float moveHorizontal=Input.GetAxis(“水平”); float moveVertical=Input.GetAxis(“垂直”); Vector3移动=新Vector3(水平移动,0.0f,垂直移动); rb.AddForce(移动*速度); } 无效对撞机(对撞机其他) { if(other.gameObject.CompareTag(“拾取”)) { other.gameObject.SetActive(false); 计数=计数+1; SetCountText(); SizeBall(其他.gameObject.transform.Scale) } } 空心尺寸球(尺寸) { transform.Scale=transform.Scale+大小 } void SetCountText() { countText.text=“点:”+count.ToString(); 如果(计数>=22) { winText.text=“你赢了!”; } } }
当我添加C# 为什么这个脚本在unity中显示错误? 使用UnityEngine; 使用UnityEngine.UI; 使用系统集合; 公共类玩家控制器:单行为{ 公众浮标速度; 公共文本; 公共文本; 私人刚体; 私人整数计数; 无效开始() { rb=GetComponent(); 计数=0; SetCountText(); winText.text=“”; } void FixedUpdate() { float moveHorizontal=Input.GetAxis(“水平”); float moveVertical=Input.GetAxis(“垂直”); Vector3移动=新Vector3(水平移动,0.0f,垂直移动); rb.AddForce(移动*速度); } 无效对撞机(对撞机其他) { if(other.gameObject.CompareTag(“拾取”)) { other.gameObject.SetActive(false); 计数=计数+1; SetCountText(); SizeBall(其他.gameObject.transform.Scale) } } 空心尺寸球(尺寸) { transform.Scale=transform.Scale+大小 } void SetCountText() { countText.text=“点:”+count.ToString(); 如果(计数>=22) { winText.text=“你赢了!”; } } },c#,unity3d,C#,Unity3d,当我添加SizeBall函数时,错误才开始出现,当我让它启动函数时,我该如何修复它?我是C#的新手,在网上找不到关于这件事的任何信息。 它应该让玩家(球)获得它收集的大量信息,但它会出错,我甚至不能玩游戏。一般来说,请始终使用Stacktrace将完整的错误消息添加到您的问题中。这有助于我们使我们的答案更加切中要害 最简单的先:后 using UnityEngine; using UnityEngine.UI; using System.Collections; public class P
SizeBall
函数时,错误才开始出现,当我让它启动函数时,我该如何修复它?我是C#的新手,在网上找不到关于这件事的任何信息。
它应该让玩家(球)获得它收集的大量信息,但它会出错,我甚至不能玩游戏。一般来说,请始终使用Stacktrace将完整的错误消息添加到您的问题中。这有助于我们使我们的答案更加切中要害
最简单的先:后
using UnityEngine;
using UnityEngine.UI;
using System.Collections;
public class PlayerController : MonoBehaviour {
public float speed;
public Text countText;
public Text winText;
private Rigidbody rb;
private int count;
void Start ()
{
rb = GetComponent<Rigidbody>();
count = 0;
SetCountText();
winText.text = "";
}
void FixedUpdate()
{
float moveHorizontal = Input.GetAxis("Horizontal");
float moveVertical = Input.GetAxis("Vertical");
Vector3 movement = new Vector3(moveHorizontal, 0.0f, moveVertical);
rb.AddForce(movement * speed);
}
void OnTriggerEnter(Collider other)
{
if (other.gameObject.CompareTag("Pick Up"))
{
other.gameObject.SetActive(false);
count = count + 1;
SetCountText();
SizeBall(other.gameObject.transform.Scale)
}
}
void SizeBall(Size)
{
transform.Scale = transform.Scale + Size
}
void SetCountText()
{
countText.text = "Points: " + count.ToString();
if (count >= 22)
{
winText.text = "You Win!";
}
}
}
及
您缺少一个代码>
然后
毫无意义。缺少参数名称或类型。从用法来看,我想应该是
void SizeBall(Size){...}
void SizeBall(Vector3 Size){...}
此外,transform.Scale
不存在
只有
相对于游戏对象父对象的变换比例
或
后者是只读的,返回应用了所有相应父比例的绝对比例
所以应该是这样
void SizeBall(Size){...}
void SizeBall(Vector3 Size){...}
及
嗯,你可以忽略错误(而不是阅读错误),然后提问而不显示错误,同时不学习任何东西或解决问题。。或简言之,错误是我们知道哪里出了问题的唯一工具,如果你选择忽略它们,你将自担风险。请编辑您的问题和您得到的例外情况,以便有人可以帮助您解决您缺少的a代码>在行尾transform.Scale=transform.Scale+Size
但是我怀疑这是导致您所指错误的原因。您是否能够发布错误内容?还可以使用函数调用(如count.ToString()
rb.AddForce()
GetAxis()
等)来修复格式设置。您不应该使用空格作为类的名称,文件也是相同的,因为我因此面临相同的问题
// Or maybe localScale depending on your needs
SizeBall(other.gameObject.transform.lossyScale);
void SizeBall (Vector3 size)
{
transform.localScale += size;
}