如何从Java调用此C#方法然后返回字符串值?
public string getTest () { return "test"; }
Run Code Online (Sandbox Code Playgroud)
这就是我尝试过的:
String str = UnityPlayer.UnitySendMessage("ProfileSave", "getTest","");
Run Code Online (Sandbox Code Playgroud)
我收到以下错误
Run Code Online (Sandbox Code Playgroud)String str=UnityPlayer.UnitySendMessage("ProfileSave", "getTest",""); ^ required: String found: void
我通过代码创建了一个切换,但它不会显示.此外,我无法改变文本字段的位置.我尝试了很多,没有任何作用.这是我目前的版本,也许你看错了.
我是Unity新手,非常困难.
public class Game : MonoBehaviour
{
public GameObject canvas;
void Start ()
{
GameObject newGO = new GameObject("myTextGO");
newGO.transform.SetParent(this.transform);
newGO.transform.position = new Vector3(0, 0, 0);
Text myText = newGO.AddComponent<Text>();
myText.text = "Ta-dah!";
Font ArialFont =
(Font)Resources.GetBuiltinResource(typeof(Font),"Arial.ttf");
myText.font = ArialFont;
myText.material = ArialFont.material;
myText.color = Color.black;
myText.transform.position = new Vector3(0, 10, 0);
GameObject secGO = new GameObject("myGO");
secGO.transform.SetParent(this.transform);
Toggle myToggle = secGO.AddComponent<Toggle>();
myToggle.isOn = true;
myToggle.transform.position = new Vector3(10, 10, 0);
}
}
Run Code Online (Sandbox Code Playgroud) 我有一个byte []数组,它读取一个本地文件,然后我将它分配给一个单一的Texture2D.使用im.sprite = Sprite.Create()函数分配图像.
我遇到的问题是我需要从字节数组中检测图像的宽度和高度,这样我就可以调整纹理大小,避免在运行时在统一场景上进行图像拉伸.
您知道如何使用库或某种函数来创建图像字节数组中的临时图像,然后在创建精灵并应用纹理之前查看所需的宽度和高度吗?
我已经在Java中找到了解决方案,但是通过适应c#无法实现它的工作.
我正在尝试使用VS2017在Unity中调试协程.
当我将VS连接到Unity并在IEnumerator方法中设置断点时,我收到错误"断点不会被击中"
这里将深入讨论: 如何解决"断点当前不会被命中.此文档没有加载符号".警告?
然而,这些答案都不适合我.
你知道如何在VS2017中的IEnumerator中设置断点吗?
我不能让Unity Assetbundles在iOS版本中工作.
在Unity中,我构建了assetsbundles:
using UnityEditor;
public class CreateAssetBundles
{
[MenuItem("Assets/Build AssetBundles")]
static void BuildAllAssetBundles()
{
BuildPipeline.BuildAssetBundles("Assets/AssetBundles", BuildAssetBundleOptions.None, BuildTarget.iOS);
}
}
Run Code Online (Sandbox Code Playgroud)
它们在Unity中运行良好.使用它们
AssetBundle bundleLoadRequest = AssetBundle.LoadFromFile("file://" + Application.dataPath + "/AssetBundles/iOS/" + myassetbundlename.ToString());
Run Code Online (Sandbox Code Playgroud)
和/或
WWW wwww = WWW.LoadFromCacheOrDownload("file://" + Application.dataPath + "/AssetBundles/iOS/" + myassetbundlename.ToString(), 4);
Run Code Online (Sandbox Code Playgroud)
(如果没有"file://"前缀,捆绑包将无法在Unity或Xcode中工作)
我将项目构建到Xcode并在Xcode中运行它并收到此错误:
无法打开存档文件:/ Users/user/Documents/Workspaces/unityproject/Assets/AssetBundles/iOS/lchairanimations
它可能与某种方式设置正确的路径有关,但由于我之后将assetbundle文件夹复制到Xcode项目,问题仍然存在.
我正在创建自定义布局组,我想控制RectTransform子对象.我想RectTransform在使用canvas或Unity的Horizontal或Vertical组时锁定某些字段,以便无法修改它.
我需要同样的效果.您可以在子项的基础上看到此消息RectTransform:由HorizontalLayoutGroup驱动的某些值
我发现了一半:
[ExecuteInEditMode]然后添加:
public void Update()
{
#if UNITY_EDITOR
if (!Application.isPlaying)
{
/* Todo => update child's positions here. */
}
#endif
}
Run Code Online (Sandbox Code Playgroud)
还有其他想法吗?
上下文:假设您正在检查键盘上是否按下了"W",最常见的检查方法是通过以下代码:
void Update(){
if (Input.GetKeyDown("W"))
DoSomething();
}
Run Code Online (Sandbox Code Playgroud)
有没有办法使用Unity的EventSystem执行以下操作?换句话说,是否有像IPointerClickHandler这样的接口的实现,例如,检查按钮是否被按下,而不是在Update()函数中这样做?
如果我创建一个列表列表.. Visual Studio 为其成员提供智能感知,但没有关于成员的文档。如果我查看 List 的定义,我会看到以下内容:
[DefaultMember("Item")]
public class List<T> : IEnumerable, ICollection, IList, ICollection<T>, IEnumerable<T>, IList<T>
{
// ...
public void Add(T item);
public void Clear();
public bool Contains(T item);
// ...
}
Run Code Online (Sandbox Code Playgroud)
没有任何成员的评论/描述。这适用于任何其他核心类。
我可以做些什么来让 Visual Studio 2017 显示文档,这样当我想知道某个方法的作用时,我就不必按 Alt+Tab 访问官方 C# 参考文档网站?
是否需要添加任何 SDK 库才能获得文档?
我在 Unity 项目上使用 Visual Studio。
我试图仅使用6个音频剪辑重新创建全系列的吉他.
我想有一种设置音频剪辑频率的方法,但audio.frequency只返回基于压缩格式而不是实际音调的音频频率.
我知道我可以阅读GetSpectrumData,但是这个解决方案相当复杂,需要进行一些傅里叶变换分析或类似的东西.
影响音高,很容易改变音调,所以我可以上下,但是有办法弄清楚使用的步骤是什么.
void Update ()
{
CheckAudio(KeyCode.Q, 1.0f);
CheckAudio(KeyCode.W, 1.1f);
CheckAudio(KeyCode.E, 1.2f);
CheckAudio(KeyCode.R, 1.3f);
CheckAudio(KeyCode.T, 1.4f);
}
void CheckAudio(KeyCode key, float pitch)
{
if (Input.GetKeyDown (key))
{
audio.pitch = pitch;
audio.Play ();
}
}
Run Code Online (Sandbox Code Playgroud)
我听说听起来不对劲.
知道初始音调E4 329.63Hz,音高为1是否有任何影响音高的方程式,我会得到下一个键F4 349.23Hz(或足够接近)?
还必须考虑Unity AudioSource将音调限制在-3/3范围内(我认为这超出了需要).
编辑:添加一些个人研究.似乎音高1是初始音符,设置为2给出相同的音高一个八度.
由于半音阶(钢琴上的所有黑白音符)都是12个键,我假设每个步骤使用1/12应该这样做.
听起来很接近,但我觉得它不太对劲.这是新代码:
[SerializeField] private AudioSource audio;
float step = 1f/12f;
KeyCode[]keys = new KeyCode[]{
KeyCode.Q, KeyCode.W,KeyCode.E,KeyCode.R,KeyCode.T,
KeyCode.Y, KeyCode.U, KeyCode.I, KeyCode.O, KeyCode.P,
KeyCode.A, KeyCode.S, KeyCode.D
};
void Update ()
{
float f = 0.0f;
foreach (KeyCode key in …Run Code Online (Sandbox Code Playgroud) 我目前遇到了C#中更新编码的问题.我正在制作一本教科书"3.x Game Development Essentials",目前正在尝试制作一个阵列,该阵列将分配纹理,这将显示电池充电的进度.教科书要我创建一个GUITexture,但是这在之前的Unity更新中已经过时了,所以我创建了一个创建Canvas和子游戏对象的UI Image.虽然这解决了屏幕上的问题,但编码时情况更糟.这本书要我创建一个由五个纹理组成的数组(四种状态,加上原始的空纹理).目标是每当角色拿起一个电池时,它会在UI Canvas中反映出来.现在,这是我得到goobery的地方:
这是本书指定在我的Inventory脚本上实现的原始编码:
public Texture2D [] hudCharge;
public GUITexture charge HudGUI;
Run Code Online (Sandbox Code Playgroud)
我最终不得不松鼠去处理旧代码,并尝试了这个:
using UnityEngine.UI;
public class Inventory : MonoBehaviour{
public static int charge = 0
public UnityEngine.AudioClip collectSound;
public UnityEngine.Texture2D[] hudCharge;
public Image chargeHudGUI;
Run Code Online (Sandbox Code Playgroud)
现在我们变得更奇怪了.因为本书使用的是过时的代码,所以它要我使用电荷值从数组中选择一个纹理.因此,它要我输入:
chargeHudGUI.texture = hudCharge[charge];
Run Code Online (Sandbox Code Playgroud)
目标是我们正在解决分配给chargeHudGUI变量的GUITexture对象,特别是它的纹理属性.嗯,这很时髦但是再也没有GUITexture了,那么它离我而去的地方呢?它让我这样:
chargeHudGUI.Image = hudCharge[charge].
Run Code Online (Sandbox Code Playgroud)
我一直在浏览每个线程,我可以尝试找出该做什么,但似乎没有解决这个特殊问题.有没有人有任何指导导航这个废话?我已经在这个游戏上工作了一段时间,我决心完成它.我想学习如何使用Visual Studio和Unity3D.我感谢任何帮助!
c# user-interface unity-game-engine visual-studio guitexture
c# ×9
unity5 ×3
android ×1
arrays ×1
assetbundle ×1
audio ×1
audioclip ×1
breakpoints ×1
coroutine ×1
debugging ×1
frequency ×1
guitexture ×1
image ×1
ios ×1
toggle ×1
unityscript ×1
xcode ×1