【问题标题】:Getting Skybox to change on collision in unity with UnityScript?让 Skybox 在与 UnityScript 的统一碰撞中发生变化?
【发布时间】:2014-01-21 15:01:49
【问题描述】:

我对 UnityScript 很陌生,因为我感兴趣的领域是 python,但是我和一个朋友正计划创建一个小型独立游戏,我需要在统一碰撞时改变天空盒。如果可能的话,我更希望在 javascript 中完成此操作。请看看它,让我知道它有什么问题,因为运行时它对场景没有任何影响。

#pragma strict    
var mat:Material;
function OnTriggerEnter(trigger: Collider){
    RenderSettings.skybox=mat;

}

这就是整个脚本。感谢您提供的任何帮助

【问题讨论】:

  • 您是否尝试过 Debug.Log("Message") 来确保 OnTriggerEnter 函数被执行?
  • 好的,所以当我尝试替换 RenderSettings.skybox=mat;使用 Debug.Log("Message"; 所以听取朋友的建议,我做了这个 'code' } function collisionCall(){ if (Collision == true){ Debug.Log("Its true"); } } 'code' 和仍然没有记录任何内容。有什么想法吗?谢谢
  • 试试 CthulhuJon 的回答。你还把对撞机标记为触发器吗?如果没有,则需要使用 OnCollisionEnter 代替 OnTriggerEnter 函数docs.unity3d.com/Documentation/ScriptReference/…

标签: unity3d unityscript


【解决方案1】:

确保对于碰撞的对象...通常一个必须有静态碰撞器(例如地板、墙壁),另一个必须有碰撞器和刚体才能撞击它(例如玩家、汽车)。还要检查您的物理设置以确保对象所在的层可以相互碰撞。 确保您的脚本在正确的对象上... collider 或 collidee ?尝试在两个对象上放置一个脚本,每个对象都有一个打印。 在这里查看更多信息 http://docs.unity3d.com/Documentation/Manual/Physics.html

【讨论】:

    【解决方案2】:

    在碰撞时改变对你来说到底是什么意思?天空盒不能碰撞。如果您的意思是天空盒以外的物体发生碰撞,请确保至少有一个对撞机在检查器中选中了“Is Trigger”。

    【讨论】:

      猜你喜欢
      • 2023-03-05
      • 2021-05-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-12
      相关资源
      最近更新 更多