我正在尝试创建自定义博览会客户端。当选择生成按键的方式时,会显示两个选项:
\n如果我选择Provide my own key选项(我从世博网站上的世博开发者页面获得),我会收到一条错误消息:
\n\n\xe2\x9c\x96 此推送密钥在 Apple 开发者门户上不再有效
\n
如果我选择这样做Let expo handle the process,它会说:
\n\n您的 Apple 开发者帐户只能生成两个 Apple 密钥。\n 请撤销旧的或重复使用其他\n应用程序中的现有内容。请记住,Apple Keys 不特定于应用程序!
\n
当我登录我的开发者帐户并查看我的两个密钥时,它们确实与我的博览会页面上显示的密钥不同 - 它们的 ID 不同。似乎博览会上显示的现有身份验证密钥由于某种原因无效。
\n如果我当前的 APN 身份验证密钥无效,那么我的应用程序中的通知如何仍然有效?我应该如何构建自定义博览会客户端而不破坏现有的已发布应用程序?
\n是的,我想完全同步。我知道它会完全停止我的一个也是唯一的线程,但我真的需要它,因为我使用了一些我不想改变的 SDK,在这个 SDK 中你需要传递一个将被调用的函数,它会改变那里有一些价值:
function onNonce(stuff) {
const url = 'fancy url to change stuff';
// await also doesn't work
// const response = await fetch(url);
// const resp_json = await response.json();
// return resp_json.token;
// await also doesn't work
const req = new XMLHttpRequest();
req.open("GET", url, false); // <-- completely sync and deprecated
req.send();
if(req.readyState === 4 && req.status === 200) {
return req.response.token;
}
}
Run Code Online (Sandbox Code Playgroud)
这就是我的 func 的调用方式:
function SDK(result) {
//
// SOME FANCY CODE
//
var …Run Code Online (Sandbox Code Playgroud) 当我在 Codepipeline 中运行我的 Lambda 函数时,它会正常结束并执行我在日志中看到的我想要的操作,但它在管道中从未成功。当我的 Lambda 函数在日志中实际执行其工作时,它仅显示正在进行中。
我错过了什么?也许我需要将此处显示的“putJobSuccessResult”发送到 CodePipeline?但如果是这样,那为什么不是自定义操作呢?
什么是自定义操作?它们与非自定义操作有什么区别?
所以我有这个简单的脚本:
using UnityEngine;
public class MyScript: MonoBehaviour
{
public int damage = 25;
public void PrintStuff()
{
Debug.Log("Stuff");
}
}
Run Code Online (Sandbox Code Playgroud)
我使用的这个 CustomEditor Editor.serializedObject:
using UnityEngine;
using UnityEditor;
[CustomEditor(typeof(MyScript))]
public class LookAtPointEditor : Editor
{
SerializedProperty damageProp;
void OnEnable()
{
// Setup the SerializedProperties.
damageProp = serializedObject.FindProperty("damage");
}
public override void OnInspectorGUI()
{
serializedObject.Update();
EditorGUILayout.IntSlider(damageProp, 0, 100, new GUIContent("Damage"));
serializedObject.ApplyModifiedProperties();
}
}
Run Code Online (Sandbox Code Playgroud)
这工作正常:撤消事情有效,退出播放模式有效,但我可以使用Editor.target并且更容易做同样的事情。并且所有功能都可以与Editor.target. 那这样做的目的是serializedObject什么?
我知道这种注入 CSS 的方法:
import Head from 'next/head'
export default function Home() {
return (
<div className="container">
<style jsx global>{`
body {
margin: 0;
}
`}</style>
<Head>
<title>audiom</title>
<link rel="icon" href="/favicon.ico" />
</Head>
</div>
)
}
Run Code Online (Sandbox Code Playgroud)
但是有没有办法快速插入css文件(在我的例子中重置css)?
所以问题是我的脚本中有一个公共变量,当这个变量改变时,我想调用一个特定的函数,但只在编辑模式下,而且只有当我在Unity Editor 中时。当我需要一个小功能时,ExecuteInEditMode将使整个脚本在编辑模式下运行。现在我使用带有以下代码的单独脚本组件:
using UnityEngine;
using UnityEditor;
[ExecuteInEditMode]
public class OtherScript: MonoBehaviour
{
private ThatBigScript that_script;
private float last_variable_value = 0.0f;
void Update()
{
if(Application.isEditor && !EditorApplication.isPlaying)
{
if(that_script == null)
{
that_script = GetComponent<ThatBigScript >();
}
if(that_script.variable_to_check != last_variable_value )
{
that_script.FunctionToCall(that_script.variable_to_check );
last_variable_value = that_script.variable_to_check ;
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
为一个小功能创建一个完整的独立组件需要很多工作,所以有人可以帮助我创建更漂亮和更短的东西吗?
当我尝试获取模型的边界(在 Blender 中创建)并在 Inspector 中显示它们时:
如您所见,当对象未旋转时,边界是正确的。但是当它们是(最左边的对象)时,边界开始变得完全错误。
这是一个显示/获取边界的脚本:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class GetBounds : MonoBehaviour
{
public MeshRenderer mesh_renderer = null;
public bool show_bounds = false;
private void OnDrawGizmos()
{
if (!show_bounds) return;
Gizmos.DrawWireCube(mesh_renderer.bounds.center, mesh_renderer.bounds.size);
Gizmos.DrawWireSphere(mesh_renderer.bounds.center, 0.3f);
}
}
Run Code Online (Sandbox Code Playgroud)
我怎样才能解决这个问题?