8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

Java Spring 应用程序不知为何被终止,没有留下任何痕迹

RARE Kpop Manifesto 2月前

43 0

我正在寻找一种解决方案,以便在我的 2D 游戏中的等距场景中正确对对象进行排序目前我正在使用这种方法:int itemSortingOrder = - (int) (item.GameObject.transform.parent.trans...

我正在寻找一种解决方案,以便在我的 2D 游戏中的等距场景中正确对对象进行排序

Wrong sorting

目前我正在使用这种方法:

int itemSortingOrder = - (int) (item.GameObject.transform.parent.transform.position.y * 1000);

但问题是,它 transform.position 被存储为 WorldCoordinates,Object's coordinates in Unity inspector当单个单元格周围的几面墙具有相同的坐标时,就会导致问题。我通过不仅计算项目的位置,还添加对象的“边界”来解决了这个问题:Green diamonds - bounds of the object

但我觉得我选择了错误的方法,应该以其他方式解决这个问题。

您能就场景中物体的排序方法提供一些建议吗?

帖子版权声明 1、本帖标题:Java Spring 应用程序不知为何被终止,没有留下任何痕迹
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由RARE Kpop Manifesto在本站《ubuntu》版块原创发布, 转载请注明出处!
最新回复 (0)
  • 这是我的脚本:#!/bin/bash# Proxmox Ubuntu 模板创建脚本。# 该脚本旨在在 Proxmox 主机上运行。# 所需脚本包REQUIRED_PKG=(\'libguestfs-tools&qu...

    这是我的脚本:

    #!/bin/bash
    
    # Proxmox Ubuntu template create script.
    # This script is designed to be run on the Proxmox host.
    
    # Required script packages
    REQUIRED_PKG=("libguestfs-tools" "wget")
    
    ### Constants
    GEN_PASS=$(date +%s | sha256sum | base64 | head -c 16 ; echo) # Random password generation
    WORK_DIR="/tmp"
    
    ### Defaults
    CLOUD_PASSWORD_DEFAULT=$GEN_PASS # Password for cloud-init
    CLOUD_USER_DEFAULT="root" # User for cloud-init
    LOCAL_LANG="en_GB.UTF-8"
    SET_X11="yes" # "yes" or "no" required
    VMID_DEFAULT="52000" # VM ID
    X11_LAYOUT="gb"
    X11_MODEL="pc105"
    
    ### Virt-Customize variables
    VIRT_PKGS="qemu-guest-agent,cloud-utils,cloud-guest-utils"
    EXTRA_VIRT_PKGS="" # Comma separated packages. Leave empty if not installing additional packages.
    
    ### VM variables
    AGENT_ENABLE="1" # Change to 0 if you don't want the guest agent
    BALLOON="768" # Minimum balooning size
    BIOS="ovmf" # Choose between ovmf or seabios
    CORES="2"
    DISK_SIZE="15G"
    DISK_STOR="proxmox" # Name of disk storage within Proxmox
    FSTRIM="1"
    MACHINE="q35" # Type of machine. Q35 or i440fx
    MEM="2048" # Max RAM
    NET_BRIDGE="vmbr1" # Network bridge name
    TAG="template"
    
    OS_TYPE="l26" # OS type (Linux 6x - 2.6 Kernel)
    # SSH Keys. Unset the variable if you don't want to use this. Use the public key. One per line.
    SSH_KEY=$(cat << 'EOF'
    ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOFLnUCnFyoONBwVMs1Gj4EqERx+Pc81dyhF6IuF26WM proxvms
    EOF
    )
    TZ="Europe/London"
    VLAN="50" # Set if you have VLAN requirements
    ZFS="true" # Set to true if you have a ZFS datastore
    
    # Notes variable
    NOTES=$(cat << 'EOF'
    When modifying this template, make sure you run this at the end
    
    apt-get clean \
    && apt -y autoremove --purge \
    && apt -y clean \
    && apt -y autoclean \
    && cloud-init clean \
    && echo -n > /etc/machine-id \
    && echo -n > /var/lib/dbus/machine-id \
    && sync \
    && history -c \
    && history -w \
    && fstrim -av \
    && shutdown now
    EOF
    )
    
    ### Functions
    
    # CTRL+C/INT catch
    ctrl_c() {
        echo "User pressed Ctrl + C. Exiting script..."
        cleanup
        exit 1
    }
    
    proxmox_check() {
    # Check if the script is running on a Proxmox system
    echo "### System Check ###"
    if pveversion &>/dev/null; then
        echo "This is a Proxmox system. Proceeding."
    else
        echo "This script is intended to run only on Proxmox. Exiting."
        exit 1
    fi
    }
    
    # Check if prerequisite package is installed.
    package_installed() {
        for pkg in "${REQUIRED_PKG[@]}"; do
            dpkg -l | grep -q "^ii  $pkg "
            if [ $? -ne 0 ]; then
                return 1
            fi
        done
        return 0
    }
    
    install_package() {
        echo "### Package Installation ###"
    
        # Check if the packages are already installed.
        if package_installed; then
            echo "The required packages are already installed."
        else
            # Prompt the user for installation confirmation with "Y" as the default choice.
            read -rp "Do you want to install the required packages '${REQUIRED_PKG[*]}'? (Y/n): " user_choice
            user_choice=${user_choice:-Y}
    
            if [[ "$user_choice" == "N" || "$user_choice" == "n" ]]; then
                echo "Package installation aborted."
                exit 0
            elif [[ "$user_choice" == "Y" || "$user_choice" == "y" ]]; then
                # Install the required packages using apt-get with -y flag for automatic "yes" to prompts.
                sudo apt-get update
                sudo apt-get install -y "${REQUIRED_PKG[@]}"
    
                # Check the exit status of apt-get to see if the installation was successful.
                if [ $? -eq 0 ]; then
                    echo "Required packages '${REQUIRED_PKG[*]}' are installed successfully."
                else
                    echo "Installation of required packages '${REQUIRED_PKG[*]}' failed."
                    exit 1
                fi
            else
                echo "Invalid choice. Aborting package installation."
                exit 1
            fi
        fi
    }
    
    select_ubuntu_version() {
        declare -A camel_to_lower
    
        camel_to_lower["Jammy"]="jammy"
        camel_to_lower["Focal"]="focal"
        camel_to_lower["Mantic"]="mantic"
        camel_to_lower["Lunar"]="lunar"
        camel_to_lower["Noble"]="noble"
    
        echo "Choose an Ubuntu version:"
    
        select version in "${!camel_to_lower[@]}"; do
            if [ -n "$version" ]; then
                selected_version="${camel_to_lower["$version"]}"
                break
            else
                echo "Invalid choice. Please select a valid option."
            fi
        done
    
        if [ -n "$selected_version" ]; then
            DISTRO_VER="$selected_version"
            DISK_IMAGE="$DISTRO_VER-server-cloudimg-amd64.img"
            IMAGE_URL="https://cloud-images.ubuntu.com/$DISTRO_VER/current/$DISK_IMAGE"
            TEMPL_NAME_DEFAULT=$(echo "ubuntu-$DISTRO_VER-cloud-master" | sed -r 's/(^|_)([a-z])/\U\2/g')
            OS_NAME="Ubuntu $DISTRO_VER" # Name of VM
            OS_NAME="$(echo "$OS_NAME" | awk '{for(i=1;i<=NF;i++) $i=toupper(substr($i,1,1)) tolower(substr($i,2));}1')"
            echo "Selected Ubuntu version: $version"
        else
            echo "Invalid choice, exiting."
            return
        fi
    }
    
    # DISK_IMAGE="jammy-server-cloudimg-amd64.img"
    # IMAGE_URL="https://cloud-images.ubuntu.com/jammy/current/$DISK_IMAGE"
    
    
    # Check if VM ID exists
    vmidexist() {
        local vmid="$1"
        # Check if the VM ID exists in the list
        if qm list | awk '{print $1}' | grep -q "^$vmid$"; then
            return 0 # VM exists
        else
            return 1 # VM does not exist
        fi
    }
    
    # Function to get a valid VM ID from the user
    get_valid_vmid() {
        local vmid_input
        read -p "Enter a VM ID (default: $VMID_DEFAULT): " vmid_input
        VMID="${vmid_input:-$VMID_DEFAULT}"
    
        while vmidexist "$VMID"; do
            echo "VM with ID $VMID exists."
            read -p "Enter a new VM ID: " VMID
        done
    }
    
    # Define user variables
    user_var() {
        # Prompt for user-defined variables
        read -p "Enter a VM Template Name [$TEMPL_NAME_DEFAULT]: " TEMPL_NAME
        TEMPL_NAME=${TEMPL_NAME:-$TEMPL_NAME_DEFAULT}
    
        read -p "Enter a Cloud-Init Username for $OS_NAME [$CLOUD_USER_DEFAULT]: " CLOUD_USER
        CLOUD_USER=${CLOUD_USER:-$CLOUD_USER_DEFAULT}
    
        read -p "Enter a Cloud-Init Password for $OS_NAME [$CLOUD_PASSWORD_DEFAULT]: " CLOUD_PASSWORD
        CLOUD_PASSWORD=${CLOUD_PASSWORD:-$CLOUD_PASSWORD_DEFAULT}
    
        # Optionally, set default values for VMID if needed
        # VMID=${VMID:-$VMID_DEFAULT}
    
        # Optionally, set default values for OS_NAME and VMID if needed
        # OS_NAME=${OS_NAME:-$OS_NAME_DEFAULT}
        # VMID=${VMID:-$VMID_DEFAULT}
    }
    
    # Remove temporary files
    cleanup() {
        # Display a message indicating temporary file deletion is starting.
        echo "### Deleting temporary files ###"
    
        # Check if the file "99_pve.cfg" exists and remove it if it does.
        if [ -f "/tmp/99_pve.cfg" ]; then
            rm -v /tmp/99_pve.cfg
        fi
    
        if [ -f "$DISK_IMAGE" ]; then
            # Prompt the user for their choice of whether to delete the image
            read -rp "Do you want to delete the image at '$DISK_IMAGE'? (Y/n): " user_choice
            user_choice=${user_choice:-Y}
    
            if [[ "$user_choice" == "Y" || "$user_choice" == "y" ]]; then
                # Remove the disk image and display a message.
                rm -v "$DISK_IMAGE"
                echo "Image deleted: $DISK_IMAGE"
            else
                # Display a message indicating the image was not deleted.
                echo "Image not deleted: $DISK_IMAGE"
            fi
        else
            # Display a message indicating that the image does not exist.
            echo "Image not found: $DISK_IMAGE"
        fi
    }
    
    
    # Create and move to working directory
    create_work_dir() {
    echo "### Creating working directory in $WORK_DIR ###"
    mkdir -p $WORK_DIR
    cd $WORK_DIR || exit
    }
    
    # Download the disk image if it doesn't exist or if it was modified upsteam
    download_image() {
        echo "### Downloading $DISK_IMAGE ###"
        wget -N -nv --show-progress "$IMAGE_URL"
    }
    
    # Install qemu-guest-agent inside image
    install_virt_pkgs() {
        if [ -n "${TZ+set}" ]; then
            echo "### Setting up TZ ###"
            virt-customize -a $DISK_IMAGE --timezone $TZ
        fi
    
        if [ $SET_X11 == 'yes' ]; then
            echo "### Setting up keyboard language and locale ###"
            virt-customize -a $DISK_IMAGE \
            --firstboot-command "localectl set-locale LANG=$LOCAL_LANG" \
            --firstboot-command "localectl set-x11-keymap $X11_LAYOUT $X11_MODEL"
        fi
    
        echo "### Updating system and installing packages ###"
        virt-customize -a $DISK_IMAGE --update --install $VIRT_PKGS
    
        if [ -z "$EXTRA_VIRT_PKGS" ]
        then
              echo "No additional packages to install"
        else
              virt-customize -a $DISK_IMAGE --update --install $EXTRA_VIRT_PKGS
        fi
    }
    
    # Create Proxmox Cloud-init config
    create_proxmox_cloud_init_config() {
        echo "### Creating Proxmox Cloud-init config ###"
        echo -n > $WORK_DIR/99_pve.cfg
        cat > $WORK_DIR/99_pve.cfg <<EOF
    # to update this file, run dpkg-reconfigure cloud-init
    datasource_list: [ NoCloud, ConfigDrive ]
    EOF
    }
    
    # Copy Proxmox Cloud-init config to the image
    copy_cloud_init_config_to_image() {
        echo "### Copying Proxmox Cloud-init config to image ###"
        virt-customize -a $DISK_IMAGE --upload $WORK_DIR/99_pve.cfg:/etc/cloud/cloud.cfg.d/
    }
    
    # Create the VM
    create_vm() {
        echo "### Creating VM ###"
        qm create $VMID --name $TEMPL_NAME --memory $MEM --balloon $BALLOON --cores $CORES --bios $BIOS --machine $MACHINE --net0 virtio,bridge=${NET_BRIDGE}${VLAN:+,tag=$VLAN}
        qm set $VMID --agent enabled=$AGENT_ENABLE,fstrim_cloned_disks=$FSTRIM
        qm set $VMID --ostype $OS_TYPE
        if [ $ZFS == 'true' ]; then
            echo "### ZFS set to $ZFS ###"
            qm importdisk $VMID $WORK_DIR/$DISK_IMAGE $DISK_STOR
            qm set $VMID --scsihw virtio-scsi-single --scsi0 $DISK_STOR:vm-$VMID-disk-0,cache=writethrough,discard=on,iothread=1,ssd=1
            qm set $VMID --efidisk0 $DISK_STOR:0,efitype=4m,,pre-enrolled-keys=1,size=528K
        else
            echo "### ZFS set to $ZFS ####"
            qm importdisk $VMID $WORK_DIR/$DISK_IMAGE $DISK_STOR -format qcow2
            qm set $VMID --scsihw virtio-scsi-single --scsi0 $DISK_STOR:$VMID/vm-$VMID-disk-0.qcow2,cache=writethrough,discard=on,iothread=1,ssd=1
            qm set "$VM"
        fi
        qm set $VMID --tags $TAG
        qm set $VMID --scsi1 $DISK_STOR:cloudinit
        qm set $VMID --rng0 source=/dev/urandom
        qm set $VMID --ciuser $CLOUD_USER
        qm set $VMID --cipassword "$CLOUD_PASSWORD"
        qm set $VMID --boot c --bootdisk scsi0
        qm set $VMID --tablet 0
        qm set $VMID --ipconfig0 ip=dhcp
        qm cloudinit update $VMID
        qm set $VMID --description "$NOTES"
    }
    
    # Apply SSH Key if the value is set
    apply_ssh() {
    echo "### Applying SSH Key ###"
    if [ -n "${SSH_KEY+set}" ]; then
        qm set $VMID --sshkey <(cat <<<"${SSH_KEY}")
    fi
    }
    
    # Resize VM disk
    vm_resize() {
    echo "### Resizing VM disk ###"
    qm resize $VMID scsi0 $DISK_SIZE
    }
    
    ### Run script
    
    # Check if the script is running under Proxmox
    proxmox_check
    
    # Trap CTRL+C
    trap ctrl_c INT
    
    # Install prerequisite packages
    install_package
    
    # Choose which flavour of Ubuntu to create
    select_ubuntu_version
    
    # Check if VM ID exists, and if it does, prompt for a new ID
    get_valid_vmid
    
    # Define user variables
    user_var
    
    # Create and move to working directory
    create_work_dir
    
    # Download the disk image if it doesn't exist or if it was modified upsteam
    download_image
    
    # Install qemu-guest-agent, set timezone and keyboard
    install_virt_pkgs
    
    # Create Proxmox Cloud-init config
    create_proxmox_cloud_init_config
    
    # Copy Proxmox Cloud-init config to the image
    copy_cloud_init_config_to_image
    
    # Create the VM
    create_vm
    
    # Apply SSH Key if the value is set
    apply_ssh
    
    # Resize VM disk
    vm_resize
    
    # Remove temporary files
    cleanup
    

    我该如何使用它。我已经制作了虚拟机,但它无法启动,当我将其变成模板并克隆它时,我仍然无法启动它。

    抱歉,问了个菜鸟问题。

    -钛

    当我运行脚本,将其转换为模板,克隆模板,然后运行模板时,它不起作用,而我希望它能起作用。

返回
作者最近主题: