我试图用这段代码改变我的对象的图像(用作Sprite强制转换):
GetComponent<SpriteRenderer>().sprite = Resources.Load("GameObjects/Tiles/Hole") as Sprite;
Run Code Online (Sandbox Code Playgroud)
它不起作用,但这工作(使用<Sprite>):
GetComponent<SpriteRenderer>().sprite = Resources.Load<Sprite>("GameObjects/Tiles/Hole");
Run Code Online (Sandbox Code Playgroud)
有什么不同?
我刚刚完成了太空射击教程,因为没有GUIText对象我创建了UI.Text对象而是相应编码.它适用于统一播放器,但不适用于构建Web应用程序之后.我花了一段时间来确定这个错误,但是当我完全不知所措UI.Text并重建时,我得到了它的工作.
Web播放器显示:内容已停止,因为检测到致命内容错误.然后是崩溃报告.
有没有解决这个问题?或者也许是使用文本的临时解决方法?
我在理解如何保留对先前被光线投射击中的对象的引用时遇到问题。
例如,我可以将光线投射脚本放在我的第一人称控制器的相机上,从相机位置到前向矢量 * 某个值
此脚本附加到相机
public class raycast : MonoBehaviour {
float lenthRay = 10.0f;
Vector3 originePos;
Vector3 dir;
RaycastHit hitinfo;
GameObject hitten;
bool isHitting;
Color beforC;
int selectionLayer = 9;
void Update () {
originePos = Camera.main.transform.position;
dir = Camera.main.transform.forward * lenthRay;
Debug.DrawRay(originePos, dir, Color.blue);
if (Physics.Raycast(originePos, dir, out hitinfo, lenthRay , selectionLayer)) {
hitten = hitinfo.transform.gameObject;
MeshRenderer tmp = hitten.transform.GetComponent<MeshRenderer> ();
beforC = tmp.material.color;
tmp.material.color = Color.black;
}
//hitten.transform.GetComponent<MeshRenderer> ().material.color = beforC;
print(hitten.name);
}
Run Code Online (Sandbox Code Playgroud)
}
它工作得很好,除非我尝试在我的 if 条件之外访问 …