Skip to content

Instantly share code, notes, and snippets.

@vansterdev
vansterdev / SelectPhoto.cpp
Created May 5, 2023 07:16
Unreal SelectPhoto with native code
// 略過相關的 C、Jni 類型轉換
void Sample::ConvertBase64ToTexture2D(FString base64Str)
{
TArray<uint8> sourceData;
FBase64::Decode(base64Str, sourceData);
UTexture2D* outTexture = FImageUtils::ImportBufferAsTexture2D(sourceData);
}
@vansterdev
vansterdev / SelectPhoto.cs
Created May 5, 2023 07:16
Unity SelectPhoto with native code
/// <summary>
/// 處理傳來的 base64
/// </summary>
/// <param name="base64Str">圖片資訊</param>
private void ConvertBase64ToBytes(string base64Str)
{
byte[] bytes = System.Convert.FromBase64String(base64Str);
ConvertBytesToTexture(bytes);
}
/// <summary>
@vansterdev
vansterdev / SelectPhoto.java
Created May 5, 2023 07:15
Java SelectPhoto to game engine
// 選擇照片的 Callback
private void onSelectPhotoSuccess(Bitmap bitmap)
{
float quality = 80;
ByteArrayOutputStream out = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.PNG, quality, out);
sendPhotoDataToEngine(out.toByteArray());
}
@vansterdev
vansterdev / SelectPhoto.m
Created May 5, 2023 07:14
Objective-C Convert Image
// 選擇照片的 Callback
-(void)onSelectPhotoSuccess:(UIImage*)choseImage
{
// 壓縮值(%)
CGFloat quality = 0.8;
// Convert image to NSData
NSData* data = UIImageJPEGRepresentation(choseImage, quality);
[self sendPhotoDataToEngine: data];
}
@vansterdev
vansterdev / HelloScreen.kt
Created May 5, 2023 07:08
Jetpack Compose Status
@Composable
fun HelloScreen() {
var name by rememberSaveable { mutableStateOf("") }
HelloContent(name = name, onNameChange = { name = it })
}
@Composable
fun HelloContent(name: String, onNameChange: (String) -> Unit) {
Column(modifier = Modifier.padding(16.dp)) {
@vansterdev
vansterdev / HelloContent.kt
Created May 5, 2023 07:06
Jetpack Compose Status
// by 委派需要 import 以下
import androidx.compose.runtime.getValue
import androidx.compose.runtime.setValue
@OptIn(ExperimentalMaterial3Api::class)
@Composable
fun HelloContent() {
Column(modifier = Modifier.padding(16.dp)) {
var name: String by remember { mutableStateOf("") }
@vansterdev
vansterdev / HelloContent.kt
Created May 5, 2023 07:05
JetpackCompose Status
@OptIn(ExperimentalMaterial3Api::class)
@Composable
fun HelloContent() {
Column(modifier = Modifier.padding(16.dp)) {
Text(
text = "Hello",
modifier = Modifier.padding(bottom = 8.dp),
style = MaterialTheme.typography.bodyMedium
)
OutlinedTextField(
@vansterdev
vansterdev / viewModel.kt
Created May 5, 2023 05:26
Compose 重組的底層
val viewModel: ConversationViewModel = viewModel()
val messages by viewModel.messages.observeAsState()
MessageList(messages)
@Composable
fun MessageList(messages: List<String>) {
Column {
if (messages.size == 0) {
Text(text = "No messages")
} else {
messages.forEach { message ->
Text(text = message)
}
}
@vansterdev
vansterdev / main.c
Created May 5, 2023 03:24
main function
bool taskCompleted = false;
void setup() {
Serial.begin(115200);
connectToWiFi();
connectToServer();
}
void loop() {
if (Firebase.ready() && !taskCompleted) {