以下是使用Unity时出现的确切错误:
每个人都说要禁用你的VPN /防火墙/安全性.我已完成所有这些,甚至重新下载,但我仍然无法在线使用Unity; 我只允许在离线模式下使用它.
有谁知道如何解决这一问题?
我正在使用Unity 5.2.2f1开发游戏,我正在使用画布和图像遮罩元素,然后为Android构建.apk.在大多数Android设备上工作正常,但在Galaxy Note 5和Kindle Fire HD上,屏蔽不需要.
什么也很有趣的是,它DOES当我使用默认提供的资产,是部分上的Galaxy Note以及Kindle Fire的HD工作unity_builtin_extra资源,而不是当我使用gif或为图像资产为.png.
Mask适用于所有Android设备:
Mask仅适用于某些Android设备:
我也尝试更新各种设置,比如将相机设置为正向渲染并启用32位显示缓冲区(正如其他帖子所建议的那样),但到目前为止还没有任何效果.
任何关于此的线索或想法都会受到极大关注!
在我的项目中,我有一个类结构,如图所示.
绿色类是旧代码,运行得很好.红色框中的类是新添加的代码.没有编译器错误,但是当在Unity中单击播放并运行到新代码时,无法正确初始化这三个类.
Unity控制台发出警告说:"名为'DataMgrBase`2'的类是通用的.不支持Generic MonoBehaviours!UnityEngine.GameObject:AddComponent()"在这一行:"instance = obj.AddComponent();"
我怎么解决这个问题?
以下是一些代码供您参考,谢谢!
单例基类的实现:
using UnityEngine;
using System.Collections;
public class UnitySingletonPersistent<T> : MonoBehaviour where T : Component
{
private static T instance;
public static T Instance {
get {
if (instance == null) {
instance = FindObjectOfType<T> ();
if (instance == null) {
GameObject obj = new GameObject ();
obj.name = typeof(T).Name;
obj.hideFlags = HideFlags.DontSave;
instance = obj.AddComponent<T> ();
}
}
return instance;
}
}
public virtual void Awake ()
{
DontDestroyOnLoad (this.gameObject);
if (instance …Run Code Online (Sandbox Code Playgroud) 我想要一个脚本运行,
每当我在Unity中的游戏第一次打开时.
我想从检查员点击按钮发送多个参数?
Unity不允许这样做,我怎样才能做到这一点?还有其他方法吗?有几十个按钮,我使用相同的方法为所有按钮,但发送不同的参数,现在我需要发送多种类型的参数.想不通怎么样?
例如,我可能有Script.cs,但我也有Script.cs.meta,或者有一个名为Sprites的文件夹和一个名为Sprites.meta的文件。为什么?
大家好:)这是情况:
我有一个baddy预制件,它有两个碰撞器组件:一个用于物理的简单CapsuleCollider2D,以及一个仅用于鼠标点碰撞的触发器PolygonCollider2D.
PolygonCollider2D仅在需要时通过附加脚本(Baddy.cs)更新:
if(this.gameObject.GetComponent<PolygonCollider2D>()!=null){
Destroy(this.gameObject.GetComponent<PolygonCollider2D>());
}
this.gameObject.AddComponent<PolygonCollider2D>();
this.gameObject.GetComponent<PolygonCollider2D>().isTrigger=true;
Run Code Online (Sandbox Code Playgroud)
是的,这是不好的做法,但它完成了工作.它完美地工作:在游戏的场景视图中我可以暂停并看到我们的baddy预制件上确实存在多边形对撞机.
在另一个附加脚本(CollisionHandler.cs)中,我们检查我们的baddy上的鼠标按下:
if(MousePress()){
hit=Physics2D.Raycast(level.mousePoint, Vector2.zero, 0f);
if(hit&&hit.collider==this.gameObject.GetComponent<PolygonCollider2D>()){
print("baddy mousePress");
}
}
Run Code Online (Sandbox Code Playgroud)
然而hit.collider==this.gameObject.GetComponent<PolygonCollider2D>()结果是错误的,即使我可以打印两个hit.collider并且this.gameObject.GetComponent<PolygonCollider2D>()在我们之前立即打印if(MousePress())并将它们定义为:
D_Prefab(Clone) (UnityEngine.PolygonCollider2D)
Run Code Online (Sandbox Code Playgroud)
它们不能是不同的PolygonColliders,因为一次只能有一个,因为我们的Baddy脚本同时删除并创建了PolygonCollider.
什么想法可能会出错?
我的同事们说,剩余Debug.Log导致延迟.但我认为这有助于加强和加速我们的发展.此外,我发现有一个禁用Debug.Log生产环境的选项.
给我你的意见.
如果游戏中发生了某些事情,我试图关闭一个实例化预制克隆的引力.我有这个:
public class Controller : MonoBehaviour
public Transform randomcoin;
private void Start()
if ( ... )
{ randomcoin.GetComponent<Rigidbody>.useGravity = false; }
Run Code Online (Sandbox Code Playgroud)
这给了我这个错误:
Component.GetComponent<T>() is a method, which is not valid in the given context
Run Code Online (Sandbox Code Playgroud)
有谁知道我怎么解决这个问题?
我正在尝试在Google Play上发布我的统一游戏,但我在任何地方都找不到此错误的答案。当我上传10“屏幕截图时,Google Play会显示“您上传了10英寸平板电脑的屏幕截图,但您的APK似乎不是为10英寸平板电脑设计的。”当我单击了解更多信息时,它说“您的APK应该包含自定义绘图文件常见的平板电脑屏幕密度资产。”
对于类似问题,可能会有很多答案,但我仍无法为错误找到答案:“您的APK应该包括针对普通平板电脑屏幕密度的自定义可绘制素材资源。” 我可能是错的,但我给人的印象是Unity负责这方面的工作。
我需要采取其他措施来解决此问题,以便将我的游戏列为“专为平板电脑设计”的游戏?我的游戏可以运行,可以在平板电脑上下载...但是说它不是为他们设计的?